User Identification with Voiceprints on Online Social Networks

ABSTRACT

In one embodiment, a method includes, by one or more computing devices of an online social network, receiving, from a client system at a first location, an audio input from an unknown user, identifying a first user who is proximate to the first location, identifying the unknown user as a second user based on a comparison of the audio input to one or more voiceprints of one or more candidate users accessible by the client system, respectively, wherein each voiceprint comprises audio data for auditory identification of a unique user, and wherein each candidate user is a contact of the first user, and sending customized content to one or more of the first user or the second user, wherein the content is customized using interest information associated with the first or second user.

PRIORITY

This application is a continuation under 35 U.S.C. § 120 of U.S. patentapplication Ser. No. 17/896,623, filed 26 Aug. 2022, which is acontinuation under 35 U.S.C. § 120 of U.S. patent application Ser. No.16/740,285, filed 10 Jan. 2020 and issued as U.S. patent Ser. No.11/475,344, which is a continuation under 35 U.S.C. § 120 of U.S. patentapplication Ser. No. 15/386,393, filed 21 Dec. 2016 and issued as U.S.patent Ser. No. 10/607,148, each of which are incorporated herein byreference.

TECHNICAL FIELD

This disclosure generally relates to using voice recognition in asocial-networking environment.

BACKGROUND

A social-networking system, which may include a social-networkingwebsite, may enable its users (such as persons or organizations) tointeract with it and with each other through it. The social-networkingsystem may, with input from a user, create and store in thesocial-networking system a user profile associated with the user. Theuser profile may include demographic information, communication-channelinformation, and information on personal interests of the user. Thesocial-networking system may also, with input from a user, create andstore a record of relationships of the user with other users of thesocial-networking system, as well as provide services (e.g. wall posts,photo-sharing, event organization, messaging, games, or advertisements)to facilitate social interaction between or among users.

The social-networking system may send over one or more networks contentor messages related to its services to a mobile or other computingdevice of a user. A user may also install software applications on amobile or other computing device of the user for accessing a userprofile of the user and other data within the social-networking system.The social-networking system may generate a personalized set of contentobjects to display to a user, such as a newsfeed of aggregated storiesof other users connected to the user.

Social-graph analysis views social relationships in terms of networktheory consisting of nodes and edges. Nodes represent the individualactors within the networks, and edges represent the relationshipsbetween the actors. The resulting graph-based structures are often verycomplex. There can be many types of nodes and many types of edges forconnecting nodes. In its simplest form, a social graph is a map of allof the relevant edges between all the nodes being studied.

Speech-recognition systems may allow a user to dictate and have speechtranscribed as written text, have a document synthesized as an audiostream, or issue commands that are recognized as such by the system.Speech-recognition systems typically use statistical models to determinethe most likely sequences of words that correspond to a given portion ofspeech received by a computer system as audio input. The models mayinclude one or more of hidden Markov models, neural networks, deeplearning models, and the like. The received audio input may be encodedinto digital data at a particular sampling rate, e.g., 16, 44.1, or 96kHz, and with a particular number of bits representing each sample,e.g., 8, 16, of 24 bits. The audio input is processed by an acousticalmodel, which is a model of the relationship between audio signals andthe sounds of phonetic units in the language. A language model thendetermines the most likely phrase that corresponds to the identifiedphonetic units for a particular audio input. The language model may be amodel of the probabilities that various word sequences may occur in thelanguage. The sounds of the phonetic units in the audio input arematched with word sequences using the language model, and greaterweights are assigned to the words sequences that are more likely to bephrases in the language. The word sequence having the highest weight isthen selected as the text that corresponds to the audio input.

The acoustical model may be generated using training input data such astraining speech received as audio input and the corresponding phoneticunits that correspond to the speech. The acoustical model may be trainedor refined using the voice of a particular user, in which case the modelmay be used to recognize that user's speech. The acoustical model may betrained using a larger sample that includes the voices of many users toproduce a speaker-independent model that capable of recognizing thevoices of users for whom it has not been trained. The language model maybe generated based on phrases in the language to be recognized by thelanguage model.

In addition, voice profiles can be generated for individual users tostore data specific to each individual user for use in recognizing eachindividual user's speech. The voice profile information may includeparameters such as the user's default language or a speaker-dependentmodel generated based on that user's voice. The voice profiles can beaccessed through different computers in a networked environment,although the audio hardware and configuration may need to be similar oridentical on both machines.

SUMMARY OF PARTICULAR EMBODIMENTS

A social-networking system may record and analyze a user's voice todetermine a digital voiceprint for the user. Privacy settings may allowusers to opt in or opt out of having the social-networking system recordor analyze the user's voice, or having the social-networking systemdetermine the voiceprint for the user. The user's privacy settings alsomay specify that such voiceprints may be used only to facilitatevoice-input purposes (e.g., to send voice messages, to improve voicerecognition in order to use voice-operated features of the online socialnetwork), and further specify that such voiceprints may not be sharedwith any third-party system or used by other processes or applicationsassociated with the social-networking system. The voiceprint may bereceived by a client system, stored on the social-networking system, andused to determine whether subsequently-received audio input is spoken bythe same user. The social-networking system may use the voiceprint toidentify or authenticate a user based on audio input, and then performactions based on voice commands in the audio input. For example, a userat a client system, such as a smartphone, may establish a voiceprint byspeaking several words or phrases into a microphone of the smartphone,which may record the user's speech as audio input. A voiceprint may begenerated based on the audio input and stored in the data store as theuser's voiceprint. Subsequently, when that user speaks a voice commandsuch as “play music” into a smartphone or other client system, the voicecommand may be compared with the user's voiceprint to identify the useras the speaker. The smartphone may then perform an action associatedwith the command using the user's identity, e.g., playing music from theuser's music library. Additionally, the social-networking system may usethe user's social-networking information when identifying orauthenticating the user based on the voiceprint, and when performingactions based on voice commands.

In particular embodiments, the social-networking system may receive,from a client system of a first user of the online social network, anaudio input from an unknown user, identify one or more candidate usersof the online social network who are within a threshold degree ofseparation of the first user, calculate, for each candidate user, aprobability that the unknown user is the candidate user, wherein theprobability is based on a comparison of the audio input to a voiceprintof the candidate user stored by the online social network, and identifyone of the candidate users as being the unknown user based on thecalculated probability scores of the candidate users. Privacy settingsmay allow users to opt in or opt out of having the social-networkingsystem identify them based on voiceprint analysis. In particularembodiments, the social-networking system may receive an audio inputfrom an unknown user who is not associated with a voiceprint, andassociate the audio input with a particular social-networking user and aprobability that the audio input was spoken by the candidate user. Avoiceprint may then be generated for the unknown user based on the audioinput and associated with the candidate user and the probability. Thecandidate user and the probability may be identified by correlatingwhere or when the audio input was received with the candidate user'ssocial-networking information and information about any known users whomay be connected to the candidate user in the social-networking systemand/or located at or near the location of the candidate user.

In particular embodiments, the social-networking system may use a user'svoiceprint to authenticate the user to a client system associated with athe social-networking system. Privacy settings may allow users to opt inor opt out of allowing authentication to the social-networking systembased on voiceprint analysis. For example, a user's voiceprint may beused as part of a two-factor authentication process involving (1)determining a user's identity based on biometric identification and/orsocial-networking information, and (2) verifying the user's identitybased on a voiceprint match. This biometric voiceprint authenticationprocess may be more secure than biometric authentication based solely onsampling physical characteristics such as thumb or retina scans. Thisprocess may also be more frictionless and convenient for users thanpassword-based authentications, since speaking an authentication code iseasier than inputting a password, passcode, or PIN. The biometricvoiceprint authentication process can be used to authenticate a user sothat the user can access an application or content, such as their onlinesocial-network feed, on the client system.

In particular embodiments, the social-networking system may identifyusers from their voiceprints and provide customized content to theidentified users. Privacy settings may allow users to opt in or opt outof having the social-networking system identify them or customizecontent for the user based on voiceprint analysis. A client systemassociated with the social-networking system may detect one or morepeople speaking, and the people speaking may be identified as usersbased on comparison of their voices to voiceprints stored by thesocial-networking system. Upon identifying one or more of the people asusers of the social-networking system, the social-networking system mayprovide customized content to the identified users based on theirsocial-networking information. The customized content may bepersonalized to match the interests of the identified users, and mayinclude advertisements, news feeds, push notifications, place tips,coupons, or suggestions.

The embodiments disclosed above are only examples, and the scope of thisdisclosure is not limited to them. Particular embodiments may includeall, some, or none of the components, elements, features, functions,operations, or steps of the embodiments disclosed above. Embodimentsaccording to the invention are in particular disclosed in the attachedclaims directed to a method, a storage medium, a system and a computerprogram product, wherein any feature mentioned in one claim category,e.g. method, can be claimed in another claim category, e.g. system, aswell. The dependencies or references back in the attached claims arechosen for formal reasons only. However any subject matter resultingfrom a deliberate reference back to any previous claims (in particularmultiple dependencies) can be claimed as well, so that any combinationof claims and the features thereof are disclosed and can be claimedregardless of the dependencies chosen in the attached claims. Thesubject-matter which can be claimed comprises not only the combinationsof features as set out in the attached claims but also any othercombination of features in the claims, wherein each feature mentioned inthe claims can be combined with any other feature or combination ofother features in the claims. Furthermore, any of the embodiments andfeatures described or depicted herein can be claimed in a separate claimand/or in any combination with any embodiment or feature described ordepicted herein or with any of the features of the attached claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example network environment associated with asocial-networking system.

FIG. 2 illustrates an example social graph.

FIG. 3 illustrates an example method for identifying users of asocial-networking system based on their voiceprints.

FIG. 4 illustrates an example method for associating voiceprints withunknown users and determining probabilities that the voiceprintscorrespond to the unknown users.

FIG. 5 illustrates an example method for using biometric identificationand a user's voiceprint to authenticate the user.

FIG. 6 illustrates an example method for identifying users from theirvoiceprints and providing customized content to the identified users.

FIG. 7 illustrates an example computer system.

DESCRIPTION OF EXAMPLE EMBODIMENTS System Overview

FIG. 1 illustrates an example network environment 100 associated with asocial-networking system. Network environment 100 includes a clientsystem 130, a social-networking system 160, and a third-party system 170connected to each other by a network 110. Although FIG. 1 illustrates aparticular arrangement of a client system 130, a social-networkingsystem 160, a third-party system 170, and a network 110, this disclosurecontemplates any suitable arrangement of a client system 130, asocial-networking system 160, a third-party system 170, and a network110. As an example and not by way of limitation, two or more of a clientsystem 130, a social-networking system 160, and a third-party system 170may be connected to each other directly, bypassing a network 110. Asanother example, two or more of a client system 130, a social-networkingsystem 160, and a third-party system 170 may be physically or logicallyco-located with each other in whole or in part. Moreover, although FIG.1 illustrates a particular number of client systems 130,social-networking systems 160, third-party systems 170, and networks110, this disclosure contemplates any suitable number of client systems130, social-networking systems 160, third-party systems 170, andnetworks 110. As an example and not by way of limitation, networkenvironment 100 may include multiple client systems 130,social-networking systems 160, third-party systems 170, and networks110.

This disclosure contemplates any suitable network 110. As an example andnot by way of limitation, one or more portions of a network 110 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), a portion of the Internet, a portion of the Public SwitchedTelephone Network (PSTN), a cellular telephone network, or a combinationof two or more of these. A network 110 may include one or more networks110.

Links 150 may connect a client system 130, a social-networking system160, and a third-party system 170 to a communication network 110 or toeach other. This disclosure contemplates any suitable links 150. Inparticular embodiments, one or more links 150 include one or morewireline (such as for example Digital Subscriber Line (DSL) or Data OverCable Service Interface Specification (DOCSIS)), wireless (such as forexample Wi-Fi or Worldwide Interoperability for Microwave Access(WiMAX)), or optical (such as for example Synchronous Optical Network(SONET) or Synchronous Digital Hierarchy (SDH)) links. In particularembodiments, one or more links 150 each include an ad hoc network, anintranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, aportion of the Internet, a portion of the PSTN, a cellulartechnology-based network, a satellite communications technology-basednetwork, another link 150, or a combination of two or more such links150. Links 150 need not necessarily be the same throughout a networkenvironment 100. One or more first links 150 may differ in one or morerespects from one or more second links 150.

In particular embodiments, a client system 130 may be an electronicdevice including hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by a clientsystem 130. As an example and not by way of limitation, a client system130 may include a computer system such as a desktop computer, notebookor laptop computer, netbook, a tablet computer, e-book reader, GPSdevice, camera, personal digital assistant (PDA), handheld electronicdevice, cellular telephone, smartphone, other suitable electronicdevice, or any suitable combination thereof. This disclosurecontemplates any suitable client systems 130. A client system 130 mayenable a network user at a client system 130 to access a network 110. Aclient system 130 may enable its user to communicate with other users atother client systems 130.

In particular embodiments, a client system 130 may include a web browser132, and may have one or more add-ons, plug-ins, or other extensions. Auser at a client system 130 may enter a Uniform Resource Locator (URL)or other address directing a web browser 132 to a particular server(such as server 162, or a server associated with a third-party system170), and the web browser 132 may generate a Hyper Text TransferProtocol (HTTP) request and communicate the HTTP request to server. Theserver may accept the HTTP request and communicate to a client system130 one or more Hyper Text Markup Language (HTML) files responsive tothe HTTP request. The client system 130 may render a web interface (e.g.a webpage) based on the HTML files from the server for presentation tothe user. This disclosure contemplates any suitable source files. As anexample and not by way of limitation, a web interface may be renderedfrom HTML files, Extensible Hyper Text Markup Language (XHTML) files, orExtensible Markup Language (XML) files, according to particular needs.Such interfaces may also execute scripts such as, for example andwithout limitation, those written in JAVASCRIPT, JAVA, MICROSOFTSILVERLIGHT, combinations of markup language and scripts such as AJAX(Asynchronous JAVASCRIPT and XML), and the like. Herein, reference to aweb interface encompasses one or more corresponding source files (whicha browser may use to render the web interface) and vice versa, whereappropriate.

In particular embodiments, the social-networking system 160 may be anetwork-addressable computing system that can host an online socialnetwork. The social-networking system 160 may generate, store, receive,and send social-networking data, such as, for example, user-profiledata, concept-profile data, social-graph information, or other suitabledata related to the online social network. The social-networking system160 may be accessed by the other components of network environment 100either directly or via a network 110. As an example and not by way oflimitation, a client system 130 may access the social-networking system160 using a web browser 132, or a native application associated with thesocial-networking system 160 (e.g., a mobile social-networkingapplication, a messaging application, another suitable application, orany combination thereof) either directly or via a network 110. Inparticular embodiments, the social-networking system 160 may include oneor more servers 162. Each server 162 may be a unitary server or adistributed server spanning multiple computers or multiple datacenters.Servers 162 may be of various types, such as, for example and withoutlimitation, web server, news server, mail server, message server,advertising server, file server, application server, exchange server,database server, proxy server, another server suitable for performingfunctions or processes described herein, or any combination thereof. Inparticular embodiments, each server 162 may include hardware, software,or embedded logic components or a combination of two or more suchcomponents for carrying out the appropriate functionalities implementedor supported by server 162. In particular embodiments, thesocial-networking system 160 may include one or more data stores 164.Data stores 164 may be used to store various types of information. Inparticular embodiments, the information stored in data stores 164 may beorganized according to specific data structures. In particularembodiments, each data store 164 may be a relational, columnar,correlation, or other suitable database. Although this disclosuredescribes or illustrates particular types of databases, this disclosurecontemplates any suitable types of databases. Particular embodiments mayprovide interfaces that enable a client system 130, a social-networkingsystem 160, or a third-party system 170 to manage, retrieve, modify,add, or delete, the information stored in data store 164.

In particular embodiments, the social-networking system 160 may storeone or more social graphs in one or more data stores 164. In particularembodiments, a social graph may include multiple nodes—which may includemultiple user nodes (each corresponding to a particular user) ormultiple concept nodes (each corresponding to a particular concept)—andmultiple edges connecting the nodes. The social-networking system 160may provide users of the online social network the ability tocommunicate and interact with other users. In particular embodiments,users may join the online social network via the social-networkingsystem 160 and then add connections (e.g., relationships) to a number ofother users of the social-networking system 160 whom they want to beconnected to. Herein, the term “friend” may refer to any other user ofthe social-networking system 160 with whom a user has formed aconnection, association, or relationship via the social-networkingsystem 160.

In particular embodiments, the social-networking system 160 may provideusers with the ability to take actions on various types of items orobjects, supported by the social-networking system 160. As an exampleand not by way of limitation, the items and objects may include groupsor social networks to which users of the social-networking system 160may belong, events or calendar entries in which a user might beinterested, computer-based applications that a user may use,transactions that allow users to buy or sell items via the service,interactions with advertisements that a user may perform, or othersuitable items or objects. A user may interact with anything that iscapable of being represented in the social-networking system 160 or byan external system of a third-party system 170, which is separate fromthe social-networking system 160 and coupled to the social-networkingsystem 160 via a network 110.

In particular embodiments, the social-networking system 160 may becapable of linking a variety of entities. As an example and not by wayof limitation, the social-networking system 160 may enable users tointeract with each other as well as receive content from third-partysystems 170 or other entities, or to allow users to interact with theseentities through an application programming interfaces (API) or othercommunication channels.

In particular embodiments, a third-party system 170 may include one ormore types of servers, one or more data stores, one or more interfaces,including but not limited to APIs, one or more web services, one or morecontent sources, one or more networks, or any other suitable components,e.g., that servers may communicate with. A third-party system 170 may beoperated by a different entity from an entity operating thesocial-networking system 160. In particular embodiments, however, thesocial-networking system 160 and third-party systems 170 may operate inconjunction with each other to provide social-networking services tousers of the social-networking system 160 or third-party systems 170. Inthis sense, the social-networking system 160 may provide a platform, orbackbone, which other systems, such as third-party systems 170, may useto provide social-networking services and functionality to users acrossthe Internet.

In particular embodiments, a third-party system 170 may include athird-party content object provider. A third-party content objectprovider may include one or more sources of content objects, which maybe communicated to a client system 130. As an example and not by way oflimitation, content objects may include information regarding things oractivities of interest to the user, such as, for example, movie showtimes, movie reviews, restaurant reviews, restaurant menus, productinformation and reviews, or other suitable information. As anotherexample and not by way of limitation, content objects may includeincentive content objects, such as coupons, discount tickets, giftcertificates, or other suitable incentive objects.

In particular embodiments, the social-networking system 160 alsoincludes user-generated content objects, which may enhance a user'sinteractions with the social-networking system 160. User-generatedcontent may include anything a user can add, upload, send, or “post” tothe social-networking system 160. As an example and not by way oflimitation, a user communicates posts to the social-networking system160 from a client system 130. Posts may include data such as statusupdates or other textual data, location information, photos, videos,links, music or other similar data or media. Content may also be addedto the social-networking system 160 by a third-party through a“communication channel,” such as a newsfeed or stream.

In particular embodiments, the social-networking system 160 may includea variety of servers, sub-systems, programs, modules, logs, and datastores. In particular embodiments, the social-networking system 160 mayinclude one or more of the following: a web server, action logger,API-request server, relevance-and-ranking engine, content-objectclassifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user-profile store, connection store,third-party content store, or location store. The social-networkingsystem 160 may also include suitable components such as networkinterfaces, security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments, thesocial-networking system 160 may include one or more user-profile storesfor storing user profiles. A user profile may include, for example,biographic information, demographic information, behavioral information,social information, or other types of descriptive information, such aswork experience, educational history, hobbies or preferences, interests,affinities, or location. Interest information may include interestsrelated to one or more categories. Categories may be general orspecific. As an example and not by way of limitation, if a user “likes”an article about a brand of shoes the category may be the brand, or thegeneral category of “shoes” or “clothing.” A connection store may beused for storing connection information about users. The connectioninformation may indicate users who have similar or common workexperience, group memberships, hobbies, educational history, or are inany way related or share common attributes. The connection informationmay also include user-defined connections between different users andcontent (both internal and external). A web server may be used forlinking the social-networking system 160 to one or more client systems130 or one or more third-party systems 170 via a network 110. The webserver may include a mail server or other messaging functionality forreceiving and routing messages between the social-networking system 160and one or more client systems 130. An API-request server may allow athird-party system 170 to access information from the social-networkingsystem 160 by calling one or more APIs. An action logger may be used toreceive communications from a web server about a user's actions on oroff the social-networking system 160. In conjunction with the actionlog, a third-party-content-object log may be maintained of userexposures to third-party-content objects. A notification controller mayprovide information regarding content objects to a client system 130.Information may be pushed to a client system 130 as notifications, orinformation may be pulled from a client system 130 responsive to arequest received from a client system 130. Authorization servers may beused to enforce one or more privacy settings of the users of thesocial-networking system 160. A privacy setting of a user determines howparticular information associated with a user can be shared. Theauthorization server may allow users to opt in to or opt out of havingtheir actions logged by the social-networking system 160 or shared withother systems (e.g., a third-party system 170), such as, for example, bysetting appropriate privacy settings. Third-party-content-object storesmay be used to store content objects received from third parties, suchas a third-party system 170. Location stores may be used for storinglocation information received from client systems 130 associated withusers. Advertisement-pricing modules may combine social information, thecurrent time, location information, or other suitable information toprovide relevant advertisements, in the form of notifications, to auser.

Social Graphs

FIG. 2 illustrates example social graph 200. In particular embodiments,social-networking system 160 may store one or more social graphs 200 inone or more data stores. In particular embodiments, social graph 200 mayinclude multiple nodes—which may include multiple user nodes 202 ormultiple concept nodes 204—and multiple edges 206 connecting the nodes.Example social graph 200 illustrated in FIG. 2 is shown, for didacticpurposes, in a two-dimensional visual map representation. In particularembodiments, a social-networking system 160, client system 130, orthird-party system 170 may access social graph 200 and relatedsocial-graph information for suitable applications. The nodes and edgesof social graph 200 may be stored as data objects, for example, in adata store (such as a social-graph database). Such a data store mayinclude one or more searchable or queryable indexes of nodes or edges ofsocial graph 200.

In particular embodiments, a user node 202 may correspond to a user ofsocial-networking system 160. As an example and not by way oflimitation, a user may be an individual (human user), an entity (e.g.,an enterprise, business, or third-party application), or a group (e.g.,of individuals or entities) that interacts or communicates with or oversocial-networking system 160. In particular embodiments, when a userregisters for an account with social-networking system 160,social-networking system 160 may create a user node 202 corresponding tothe user, and store the user node 202 in one or more data stores. Usersand user nodes 202 described herein may, where appropriate, refer toregistered users and user nodes 202 associated with registered users. Inaddition or as an alternative, users and user nodes 202 described hereinmay, where appropriate, refer to users that have not registered withsocial-networking system 160. In particular embodiments, a user node 202may be associated with information provided by a user or informationgathered by various systems, including social-networking system 160. Asan example and not by way of limitation, a user may provide his or hername, profile picture, contact information, birth date, sex, maritalstatus, family status, employment, education background, preferences,interests, or other demographic information. In particular embodiments,a user node 202 may be associated with one or more data objectscorresponding to information associated with a user. In particularembodiments, a user node 202 may correspond to one or more webpages.

In particular embodiments, a concept node 204 may correspond to aconcept. As an example and not by way of limitation, a concept maycorrespond to a place (such as, for example, a movie theater,restaurant, landmark, or city); a website (such as, for example, awebsite associated with social-network system 160 or a third-partywebsite associated with a web-application server); an entity (such as,for example, a person, business, group, sports team, or celebrity); aresource (such as, for example, an audio file, video file, digitalphoto, text file, structured document, or application) which may belocated within social-networking system 160 or on an external server,such as a web-application server; real or intellectual property (suchas, for example, a sculpture, painting, movie, game, song, idea,photograph, or written work); a game; an activity; an idea or theory;another suitable concept; or two or more such concepts. A concept node204 may be associated with information of a concept provided by a useror information gathered by various systems, including social-networkingsystem 160. As an example and not by way of limitation, information of aconcept may include a name or a title; one or more images (e.g., animage of the cover page of a book); a location (e.g., an address or ageographical location); a website (which may be associated with a URL);contact information (e.g., a phone number or an email address); othersuitable concept information; or any suitable combination of suchinformation. In particular embodiments, a concept node 204 may beassociated with one or more data objects corresponding to informationassociated with concept node 204. In particular embodiments, a conceptnode 204 may correspond to one or more webpages.

In particular embodiments, a node in social graph 200 may represent orbe represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible tosocial-networking system 160. Profile pages may also be hosted onthird-party websites associated with a third-party system 170. As anexample and not by way of limitation, a profile page corresponding to aparticular external webpage may be the particular external webpage andthe profile page may correspond to a particular concept node 204.Profile pages may be viewable by all or a selected subset of otherusers. As an example and not by way of limitation, a user node 202 mayhave a corresponding user-profile page in which the corresponding usermay add content, make declarations, or otherwise express himself orherself. As another example and not by way of limitation, a concept node204 may have a corresponding concept-profile page in which one or moreusers may add content, make declarations, or express themselves,particularly in relation to the concept corresponding to concept node204.

In particular embodiments, a concept node 204 may represent athird-party webpage or resource hosted by a third-party system 170. Thethird-party webpage or resource may include, among other elements,content, a selectable or other icon, or other inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. As an example and not by wayof limitation, a third-party webpage may include a selectable icon suchas “like,” “check-in,” “eat,” “recommend,” or another suitable action oractivity. A user viewing the third-party webpage may perform an actionby selecting one of the icons (e.g., “check-in”), causing a clientsystem 130 to send to social-networking system 160 a message indicatingthe user's action. In response to the message, social-networking system160 may create an edge (e.g., a check-in-type edge) between a user node202 corresponding to the user and a concept node 204 corresponding tothe third-party webpage or resource and store edge 206 in one or moredata stores.

In particular embodiments, a pair of nodes in social graph 200 may beconnected to each other by one or more edges 206. An edge 206 connectinga pair of nodes may represent a relationship between the pair of nodes.In particular embodiments, an edge 206 may include or represent one ormore data objects or attributes corresponding to the relationshipbetween a pair of nodes. As an example and not by way of limitation, afirst user may indicate that a second user is a “friend” of the firstuser. In response to this indication, social-networking system 160 maysend a “friend request” to the second user. If the second user confirmsthe “friend request,” social-networking system 160 may create an edge206 connecting the first user's user node 202 to the second user's usernode 202 in social graph 200 and store edge 206 as social-graphinformation in one or more of data stores 164. In the example of FIG. 2, social graph 200 includes an edge 206 indicating a friend relationbetween user nodes 202 of user “A” and user “B” and an edge indicating afriend relation between user nodes 202 of user “C” and user “B.”Although this disclosure describes or illustrates particular edges 206with particular attributes connecting particular user nodes 202, thisdisclosure contemplates any suitable edges 206 with any suitableattributes connecting user nodes 202. As an example and not by way oflimitation, an edge 206 may represent a friendship, family relationship,business or employment relationship, fan relationship (including, e.g.,liking, etc.), follower relationship, visitor relationship (including,e.g., accessing, viewing, checking-in, sharing, etc.), subscriberrelationship, superior/subordinate relationship, reciprocalrelationship, non-reciprocal relationship, another suitable type ofrelationship, or two or more such relationships. Moreover, although thisdisclosure generally describes nodes as being connected, this disclosurealso describes users or concepts as being connected. Herein, referencesto users or concepts being connected may, where appropriate, refer tothe nodes corresponding to those users or concepts being connected inthe social graph 200 by one or more edges 206.

In particular embodiments, an edge 206 between a user node 202 and aconcept node 204 may represent a particular action or activity performedby a user associated with user node 202 toward a concept associated witha concept node 204. As an example and not by way of limitation, asillustrated in FIG. 2 , a user may “like,” “attended,” “played,”“listened,” “cooked,” “worked at,” or “watched” a concept, each of whichmay correspond to an edge type or subtype. A concept-profile pagecorresponding to a concept node 204 may include, for example, aselectable “check in” icon (such as, for example, a clickable “check in”icon) or a selectable “add to favorites” icon. Similarly, after a userclicks these icons, social-networking system 160 may create a “favorite”edge or a “check in” edge in response to a user's action correspondingto a respective action. As another example and not by way of limitation,a user (user “C”) may listen to a particular song (“SongName”) using aparticular application (a third-party online music application). In thiscase, social-networking system 160 may create a “listened” edge 206 anda “used” edge (as illustrated in FIG. 2 ) between user nodes 202corresponding to the user and concept nodes 204 corresponding to thesong and application to indicate that the user listened to the song andused the application. Moreover, social-networking system 160 may createa “played” edge 206 (as illustrated in FIG. 2 ) between concept nodes204 corresponding to the song and the application to indicate that theparticular song was played by the particular application. In this case,“played” edge 206 corresponds to an action performed by an externalapplication (the third-party online music application) on an externalaudio file (the song “SongName”). Although this disclosure describesparticular edges 206 with particular attributes connecting user nodes202 and concept nodes 204, this disclosure contemplates any suitableedges 206 with any suitable attributes connecting user nodes 202 andconcept nodes 204. Moreover, although this disclosure describes edgesbetween a user node 202 and a concept node 204 representing a singlerelationship, this disclosure contemplates edges between a user node 202and a concept node 204 representing one or more relationships. As anexample and not by way of limitation, an edge 206 may represent boththat a user likes and has used at a particular concept. Alternatively,another edge 206 may represent each type of relationship (or multiplesof a single relationship) between a user node 202 and a concept node 204(as illustrated in FIG. 2 between user node 202 for user “E” and conceptnode 204 for “online music application”).

In particular embodiments, social-networking system 160 may create anedge 206 between a user node 202 and a concept node 204 in social graph200. As an example and not by way of limitation, a user viewing aconcept-profile page (such as, for example, by using a web browser or aspecial-purpose application hosted by the user's client system 130) mayindicate that he or she likes the concept represented by the conceptnode 204 by clicking or selecting a “Like” icon, which may cause theuser's client system 130 to send to social-networking system 160 amessage indicating the user's liking of the concept associated with theconcept-profile page. In response to the message, social-networkingsystem 160 may create an edge 206 between user node 202 associated withthe user and concept node 204, as illustrated by “like” edge 206 betweenthe user and concept node 204. In particular embodiments,social-networking system 160 may store an edge 206 in one or more datastores. In particular embodiments, an edge 206 may be automaticallyformed by social-networking system 160 in response to a particular useraction. As an example and not by way of limitation, if a first useruploads a picture, watches a movie, or listens to a song, an edge 206may be formed between user node 202 corresponding to the first user andconcept nodes 204 corresponding to those concepts. Although thisdisclosure describes forming particular edges 206 in particular manners,this disclosure contemplates forming any suitable edges 206 in anysuitable manner.

Search Queries on Online Social Networks

In particular embodiments, a user may submit a query to thesocial-networking system 160 by, for example, selecting a query input orinputting text into query field. A user of an online social network maysearch for information relating to a specific subject matter (e.g.,users, concepts, external content or resource) by providing a shortphrase describing the subject matter, often referred to as a “searchquery,” to a search engine. The query may be an unstructured text queryand may comprise one or more text strings (which may include one or moren-grams). In general, a user may input any character string into a queryfield to search for content on the social-networking system 160 thatmatches the text query. The social-networking system 160 may then searcha data store 164 (or, in particular, a social-graph database) toidentify content matching the query. The search engine may conduct asearch based on the query phrase using various search algorithms andgenerate search results that identify resources or content (e.g.,user-profile interfaces, content-profile interfaces, or externalresources) that are most likely to be related to the search query. Toconduct a search, a user may input or send a search query to the searchengine. In response, the search engine may identify one or moreresources that are likely to be related to the search query, each ofwhich may individually be referred to as a “search result,” orcollectively be referred to as the “search results” corresponding to thesearch query. The identified content may include, for example,social-graph elements (i.e., user nodes 202, concept nodes 204, edges206), profile interfaces, external web interfaces, or any combinationthereof. The social-networking system 160 may then generate asearch-results interface with search results corresponding to theidentified content and send the search-results interface to the user.The search results may be presented to the user, often in the form of alist of links on the search-results interface, each link beingassociated with a different interface that contains some of theidentified resources or content. In particular embodiments, each link inthe search results may be in the form of a Uniform Resource Locator(URL) that specifies where the corresponding interface is located andthe mechanism for retrieving it. The social-networking system 160 maythen send the search-results interface to the web browser 132 on theuser's client system 130. The user may then click on the URL links orotherwise select the content from the search-results interface to accessthe content from the social-networking system 160 or from an externalsystem (such as, for example, a third-party system 170), as appropriate.The resources may be ranked and presented to the user according to theirrelative degrees of relevance to the search query. The search resultsmay also be ranked and presented to the user according to their relativedegree of relevance to the user. In other words, the search results maybe personalized for the querying user based on, for example,social-graph information, user information, search or browsing historyof the user, or other suitable information related to the user. Inparticular embodiments, ranking of the resources may be determined by aranking algorithm implemented by the search engine. As an example andnot by way of limitation, resources that are more relevant to the searchquery or to the user may be ranked higher than the resources that areless relevant to the search query or the user. In particularembodiments, the search engine may limit its search to resources andcontent on the online social network. However, in particularembodiments, the search engine may also search for resources or contentson other sources, such as a third-party system 170, the internet orWorld Wide Web, or other suitable sources. Although this disclosuredescribes querying the social-networking system 160 in a particularmanner, this disclosure contemplates querying the social-networkingsystem 160 in any suitable manner.

In particular embodiments, one or more client-side and/or backend(server-side) processes may implement and utilize a “typeahead” featurethat may automatically attempt to match social-graph elements (e.g.,user nodes 202, concept nodes 204, or edges 206) to informationcurrently being entered by a user in an input form rendered inconjunction with a requested interface (such as, for example, auser-profile interface, a concept-profile interface, a search-resultsinterface, a user interface/view state of a native applicationassociated with the online social network, or another suitable interfaceof the online social network), which may be hosted by or accessible inthe social-networking system 160. In particular embodiments, as a useris entering text to make a declaration, the typeahead feature mayattempt to match the string of textual characters being entered in thedeclaration to strings of characters (e.g., names, descriptions)corresponding to users, concepts, or edges and their correspondingelements in the social graph 200. In particular embodiments, when amatch is found, the typeahead feature may automatically populate theform with a reference to the social-graph element (such as, for example,the node name/type, node ID, edge name/type, edge ID, or anothersuitable reference or identifier) of the existing social-graph element.In particular embodiments, as the user enters characters into a formbox, the typeahead process may read the string of entered textualcharacters. As each keystroke is made, the frontend-typeahead processmay send the entered character string as a request (or call) to thebackend-typeahead process executing within the social-networking system160. In particular embodiments, the typeahead process may use one ormore matching algorithms to attempt to identify matching social-graphelements. In particular embodiments, when a match or matches are found,the typeahead process may send a response to the user's client system130 that may include, for example, the names (name strings) ordescriptions of the matching social-graph elements as well as,potentially, other metadata associated with the matching social-graphelements. As an example and not by way of limitation, if a user entersthe characters “pok” into a query field, the typeahead process maydisplay a drop-down menu that displays names of matching existingprofile interfaces and respective user nodes 202 or concept nodes 204,such as a profile interface named or devoted to “poker” or “pokemon,”which the user can then click on or otherwise select thereby confirmingthe desire to declare the matched user or concept name corresponding tothe selected node.

More information on typeahead processes may be found in U.S. patentapplication Ser. No. 12/763,162, filed 19 Apr. 2010, and U.S. patentapplication Ser. No. 13/556,072, filed 23 Jul. 2012, which areincorporated by reference.

In particular embodiments, the typeahead processes described herein maybe applied to search queries entered by a user. As an example and not byway of limitation, as a user enters text characters into a query field,a typeahead process may attempt to identify one or more user nodes 202,concept nodes 204, or edges 206 that match the string of charactersentered into the query field as the user is entering the characters. Asthe typeahead process receives requests or calls including a string orn-gram from the text query, the typeahead process may perform or causeto be performed a search to identify existing social-graph elements(i.e., user nodes 202, concept nodes 204, edges 206) having respectivenames, types, categories, or other identifiers matching the enteredtext. The typeahead process may use one or more matching algorithms toattempt to identify matching nodes or edges. When a match or matches arefound, the typeahead process may send a response to the user's clientsystem 130 that may include, for example, the names (name strings) ofthe matching nodes as well as, potentially, other metadata associatedwith the matching nodes. The typeahead process may then display adrop-down menu that displays names of matching existing profileinterfaces and respective user nodes 202 or concept nodes 204, anddisplays names of matching edges 206 that may connect to the matchinguser nodes 202 or concept nodes 204, which the user can then click on orotherwise select thereby confirming the desire to search for the matcheduser or concept name corresponding to the selected node, or to searchfor users or concepts connected to the matched users or concepts by thematching edges. Alternatively, the typeahead process may simplyauto-populate the form with the name or other identifier of thetop-ranked match rather than display a drop-down menu. The user may thenconfirm the auto-populated declaration simply by keying “enter” on akeyboard or by clicking on the auto-populated declaration. Upon userconfirmation of the matching nodes and edges, the typeahead process maysend a request that informs the social-networking system 160 of theuser's confirmation of a query containing the matching social-graphelements. In response to the request sent, the social-networking system160 may automatically (or alternately based on an instruction in therequest) call or otherwise search a social-graph database for thematching social-graph elements, or for social-graph elements connectedto the matching social-graph elements as appropriate. Although thisdisclosure describes applying the typeahead processes to search queriesin a particular manner, this disclosure contemplates applying thetypeahead processes to search queries in any suitable manner.

In connection with search queries and search results, particularembodiments may utilize one or more systems, components, elements,functions, methods, operations, or steps disclosed in U.S. patentapplication Ser. No. 11/503,093, filed 11 Aug. 2006, U.S. patentapplication Ser. No. 12/977,027, filed 22 Dec. 2010, and U.S. patentapplication Ser. No. 12/978,265, filed 23 Dec. 2010, which areincorporated by reference.

In particular embodiments, in response to a text query received from afirst user (i.e., the querying user), the social-networking system 160may parse the text query and identify portions of the text query thatcorrespond to particular social-graph elements. However, in some cases aquery may include one or more terms that are ambiguous, where anambiguous term is a term that may possibly correspond to multiplesocial-graph elements. To parse the ambiguous term, thesocial-networking system 160 may access a social graph 200 and thenparse the text query to identify the social-graph elements thatcorresponded to ambiguous n-grams from the text query. Thesocial-networking system 160 may then generate a set of structuredqueries, where each structured query corresponds to one of the possiblematching social-graph elements. These structured queries may be based onstrings generated by a grammar model, such that they are rendered in anatural-language syntax with references to the relevant social-graphelements. As an example and not by way of limitation, in response to thetext query, “show me friends of my girlfriend,” the social-networkingsystem 160 may generate a structured query “Friends of Stephanie,” where“Friends” and “Stephanie” in the structured query are referencescorresponding to particular social-graph elements. The reference to“Stephanie” would correspond to a particular user node 202 (where thesocial-networking system 160 has parsed the n-gram “my girlfriend” tocorrespond with a user node 202 for the user “Stephanie”), while thereference to “Friends” would correspond to friend-type edges 206connecting that user node 202 to other user nodes 202 (i.e., edges 206connecting to “Stephanie's” first-degree friends). When executing thisstructured query, the social-networking system 160 may identify one ormore user nodes 202 connected by friend-type edges 206 to the user node202 corresponding to “Stephanie”. As another example and not by way oflimitation, in response to the text query, “friends who work atfacebook,” the social-networking system 160 may generate a structuredquery “My friends who work at Facebook,” where “my friends,” “work at,”and “Facebook” in the structured query are references corresponding toparticular social-graph elements as described previously (i.e., afriend-type edge 206, a work-at-type edge 206, and concept node 204corresponding to the company “Facebook”). By providing suggestedstructured queries in response to a user's text query, thesocial-networking system 160 may provide a powerful way for users of theonline social network to search for elements represented in the socialgraph 200 based on their social-graph attributes and their relation tovarious social-graph elements. Structured queries may allow a queryinguser to search for content that is connected to particular users orconcepts in the social graph 200 by particular edge-types. Thestructured queries may be sent to the first user and displayed in adrop-down menu (via, for example, a client-side typeahead process),where the first user can then select an appropriate query to search forthe desired content. Some of the advantages of using the structuredqueries described herein include finding users of the online socialnetwork based upon limited information, bringing together virtualindexes of content from the online social network based on the relationof that content to various social-graph elements, or finding contentrelated to you and/or your friends. Although this disclosure describesgenerating particular structured queries in a particular manner, thisdisclosure contemplates generating any suitable structured queries inany suitable manner.

More information on element detection and parsing queries may be foundin U.S. patent application Ser. No. 13/556,072, filed 23 Jul. 2012, U.S.patent application Ser. No. 13/731,866, filed 31 Dec. 2012, and U.S.patent application Ser. No. 13/732,101, filed 31 Dec. 2012, each ofwhich is incorporated by reference. More information on structuredsearch queries and grammar models may be found in U.S. patentapplication Ser. No. 13/556,072, filed 23 Jul. 2012, U.S. patentapplication Ser. No. 13/674,695, filed 12 Nov. 2012, and U.S. patentapplication Ser. No. 13/731,866, filed 31 Dec. 2012, each of which isincorporated by reference.

In particular embodiments, the social-networking system 160 may providecustomized keyword completion suggestions to a querying user as the useris inputting a text string into a query field. Keyword completionsuggestions may be provided to the user in a non-structured format. Inorder to generate a keyword completion suggestion, the social-networkingsystem 160 may access multiple sources within the social-networkingsystem 160 to generate keyword completion suggestions, score the keywordcompletion suggestions from the multiple sources, and then return thekeyword completion suggestions to the user. As an example and not by wayof limitation, if a user types the query “friends sta,” then thesocial-networking system 160 may suggest, for example, “friendsstateford,” “friends stateford university,” “friends stanley,” “friendsstanley lastname,” “friends stateley cup,” and “friends stanlonski.” Inthis example, the social-networking system 160 is suggesting thekeywords which are modifications of the ambiguous n-gram “sta,” wherethe suggestions may be generated from a variety of keyword generators.The social-networking system 160 may have selected the keywordcompletion suggestions because the user is connected in some way to thesuggestions. As an example and not by way of limitation, the queryinguser may be connected within the social graph 200 to the concept node204 corresponding to School “School Name,” for example by like- orattended-type edges 206. The querying user may also have a friend namedStanley LastName. Although this disclosure describes generating keywordcompletion suggestions in a particular manner, this disclosurecontemplates generating keyword completion suggestions in any suitablemanner.

More information on keyword queries may be found in U.S. patentapplication Ser. No. 14/244,748, filed 3 Apr. 2014, U.S. patentapplication Ser. No. 14/470,607, filed 27 Aug. 2014, and U.S. patentapplication Ser. No. 14/561,418, filed 5 Dec. 2014, each of which isincorporated by reference.

Voice Printing Multi-User Recognition

In particular embodiments, referring to FIG. 1 , a first user 180 mayuse and interact, directly or indirectly, with the client system 130.The first user may be an owner, primary user, or registered user of theclient system 130. The client system 130 may receive audio input 152,for example, via a microphone (not shown) from the first user 180. Theaudio input 152 may include, for example, words, numbers, or phrasesspoken by the first user 180. The client system 130 may include orinterface with a biometric scanner 134 that receives biometric data suchas fingerprint scans, retina scans, iris scans, or the like from a usersuch as the first user 180 or a second user 182. The second user 182 maycommunicate with the client system 130 via audio input 152, which mayinclude, for example, words, numbers, or phrases spoken by the seconduser 182. Thus, a user's voice may be received as audio input by aclient system 130 and processed by the client system 130 and/or by oneor more servers 162 of the social-networking system 160. Audio inputreceived from a user may also be referred to herein as a sample of theuser's voice. The identity of the second user 182 may be unknown (andthus may be referred to herein as an “unknown user”), and may bedetermined by the social-networking system 160 in combination with oneor more of the client system 130, BLUETOOTH beacon 190, media device192, or other suitable systems. The determination of the identity of thesecond user 182 may be based on the audio input 152 received from thesecond user 182. The audio input 152 may be received by microphones inlistening devices such as the client system 130, a BLUETOOTH beacon 190,or a media device 192. The BLUETOOTH beacon 190 and the media device 192may communicate with the network 110 via links 150. The media device maybe, for example, a dongle that communicates with a television (TV), orother type of device for presenting media such as audio and video.

In particular embodiments, the social-networking system 160 may recordand analyze a user's voice to determine a digital voiceprint for theuser. Privacy settings may allow users to opt in or opt out of havingthe social-networking system 160 record or analyze the user's voice, orhaving the social-networking system 160 determine the voiceprint for theuser. The user's privacy settings also may specify that such voiceprintsmay be used only to facilitate voice-input purposes (e.g., to send voicemessages, to improve voice recognition in order to use voice-operatedfeatures of the online social network), and further specify that suchvoiceprints may not be shared with any third-party system 170 or used byother processes or applications associated with the social-networkingsystem 160. The voiceprint may be received by a client system 130,stored on the social-networking system 160, and used to determinewhether subsequently-received audio input is spoken by the same user.The social-networking system 160 may use the voiceprint to identify orauthenticate a user based on audio input, and then perform actions basedon voice commands in the audio input. For example, a user at a clientsystem 130, such as a smartphone, may establish a voiceprint by speakingseveral words or phrases into a microphone of the smartphone, which mayrecord the user's speech as audio input. A voiceprint may be generatedbased on the audio input and stored in the data store 164 as the user'svoiceprint. Subsequently, when that user speaks a voice command such as“play music” into a smartphone or other client system 130, the voicecommand may be compared with the user's voiceprint to identify the useras the speaker. The smartphone may then perform an action associatedwith the command using the user's identity, e.g., playing music from theuser's music library. In connection with voice commands, particularembodiments may utilize one or more systems, components, elements,functions, methods, operations, or steps disclosed in U.S. patentapplication Ser. No. 13/652,767, filed 27 Jul. 2012, which isincorporated by reference.

In particular embodiments, the social-networking system 160 may use theuser's social-networking information when identifying or authenticatingthe user based on the voiceprint, and when performing actions based onvoice commands. In particular embodiments, the social-networking system160 may use social-graph information to disambiguate names in voicecommands. For example, if a user named Aren says “Let Matt know I'mrunning late,” and there are several users named Matt, thesocial-networking system 160 may select an intended user named Mattbased on Aren's social-graph connections (e.g., based on an affinitycoefficient or a degree of separation between Aren and other users named“Matt”). The social-networking system 160 may automatically send theintended Matt a message that Aren is running late. Alternatively, ifthere are multiple users named Matt connected to Aren (for example, aMatt #1 and a Matt #2 are both first-degree connections of Aren withinsocial graph 200), and the social-networking system 160 cannot determinewho Aren intended to message, the social-networking system 160 maypresent Aren with options, such as, “Should I notify Matt #1 or Matt#2?” or “Do you mean Matt #1?”

In particular embodiments, a client system 130 associated with thesocial-networking system 160, e.g., a smartphone, a BLUETOOTH beacon190, media device 192, or the like, may listen for and detect voices,then apply voiceprint analysis to the detected voices. For example, ifAren and Matt are talking, a client system 130 may isolate Matt's voice,and if Matt's voiceprint is stored in the social-networking system 160,Matt's presence may be detected even though he did not directly interactwith the client system 130 or did not perform a check-in. Privacysettings may allow users to opt in or opt out of having thesocial-networking system 160 identify them based on voiceprint analysis.To improve the accuracy and efficiency of identifying speakers, thesocial-networking system 160 may use the identities of known speakers togenerate a list of potential candidates for the unknown speakers. Forexample, if Aren has checked-in or has been identified by the clientsystem 130 (e.g., because the device is Aren's mobile phone), thesocial-networking system 160 may identify Matt as being the unknownspeaker by comparing Matt's captured voice to voiceprints of usersconnected to Aren in the social-networking system 160, such as friendsor friends-of-friends of Aren, thereby reducing the set of potentialvoiceprints to which the captured voice is compared.

In particular embodiments, the social-networking system 160 may useinformation about known users to disambiguate voice commands. If Arenspeaks the command “Let Matt know I'm running late,” then thesocial-networking system 160 may identify a friend or contact namedMatt. A user is unlikely to send such a status update to another userlocated in the same room. Thus, if the social-networking system 160determines through voiceprint analysis that Matt #1 is located in sameroom as Aren, and there are multiple users named Matt, then it isunlikely that Aren wants to notify Matt #1 about being late. Thesocial-networking system 160 thus may disambiguate the voice command byexcluding Matt #1 from the list of possible addressees and identifyinganother user named Matt, e.g., Matt #2, who may have a lower coefficientor a greater degree of separation from Aren than the first-identifiedMatt. The social-networking system 160 may automatically send a messageto Matt #2 indicating that Aren is running late, or may display amessage to Aren such as, “Do you mean Matt #2?”

As another example, if Aren speaks the voice command “Let Rosie know themeeting is starting soon,” the social-networking system 160 may identifytwo users named Rosie (e.g., Rosie #1 and Rosie #2) who are connected toAren, neither of whom is in the room with Aren. If the social-networkingsystem 160 identifies (e.g., through voiceprint analysis) another personin the room, George, who is also connected to Rosie #2 (but not to Rosie#1), then the system 160 may select Rosie #2 because she is connected toboth Aren and George. The social-networking system 160 may automaticallysend a message to Rosie #2, or may send a message to Aren asking whetherhe is referring to Rosie #2.

In particular embodiments, a client system 130 may restrict or customizethe functionality of the device 130 based on voiceprint analysis of auser's voice. Different sets of commands may be available to differentusers because of access control permissions or other reasons. Thesocial-networking system 160 may use voiceprint matching to identify auser who speaks a command, determine the user's authorization level, andthen determine whether to execute each particular voice command spokenby the user. Privacy settings may allow users to opt in or opt out ofhaving the social-networking system 160 identify them based onvoiceprint analysis. For example, a user 180 who is an owner of a clientsystem 130 may have unrestricted access to execute commands on theclient system 130, but other users 182, such as friends of the owner,may be restricted to executing a limited set of voice commands. Stillother users 182, such as friends of friends of the owner or unidentifiedusers, may be prohibited from executing voice commands. For example, ifa user 182 says “play music” or “post that clip to my timeline,” but theuser's voice cannot be identified, e.g., because the voice commandreceived from the user 182 does not match the voiceprint of a knownuser, then the client system 130 may decline or ignore the command.Alternatively, the client system 130 may require the unidentified user182 to authenticate before processing the command. For example, theclient system 130 may display a message to an unidentified user 182 suchas “What is your name?” and/or display a username/password prompt, thenauthenticate the user 182 based on received voice input. Permissionsettings may allow a first user to opt in or opt out of having thesocial-networking system 160 authenticate other users based onvoiceprint analysis via the first user's device. In one example, a user182 who is successfully authenticated may be granted access to a limitedset of commands. In another example, an unidentified user 182 may bepermitted to execute certain commands that do not access userinformation or are otherwise unrestricted. For example, the clientsystem 130 may execute commands such as “what is the weather forecast?”or “what time is it?” even if the user 182 speaking the command is notidentified or authenticated.

In particular embodiments, the social-networking system 160 may usevoiceprint analysis to perform actions based on social-networkinginformation. For example, if a user 182 is connected in a social graphto a user 180 who is an owner of a client system 130, then the clientsystem 130 may allow the user 182 to perform a restricted set ofcommands or commands that are specific to the user 182. For example, ifa user Matt speaks the command “post that clip to my timeline” toanother user Aren's smartphone, then the social-networking system 160may post an associated audio clip to Matt's timeline rather than Aren's,even though the smartphone is Aren's, and/or even if Aren is logged intoa social-networking application that processes the voice command on thesmartphone. As another example, voice commands to access Aren'ssocial-networking feed spoken by Matt on Aren's smartphone may be deniedif Matt does not have permission to access Aren's feed. However, Mattmay be permitted to access his own feed on Aren's smartphone, e.g., byspeaking a command such as “show me my newsfeed” to Aren's phone.

In particular embodiments, the social-networking system 160 may receive,from a client system 130 of a first user 180 of the online socialnetwork, an audio input from a second user 182, wherein the audio inputcomprises one or more voice commands. In particular embodiments, thesecond user 182 may be associated with a voiceprint that matches theaudio input. In particular embodiments, the social-networking system 160may identify the one or more voice commands using voice recognition onthe audio input. Privacy settings may allow users to opt in or opt outof having the social-networking system 160 perform voice recognition ontheir audio inputs. In particular embodiments, each voice command maycomprise a name of the action associated with the command. In particularembodiments, the second user 182 may be located proximate to the firstuser 180. A user located proximate to another user may be located in thesame room or building or on the same city block as the other user, orwithin hearing distance of the other user, or within a small distance,e.g., 1, 5, 10, 20 feet, or the like. A location may be locatedproximate to another location under one or more of the same conditionsstated above for a user located proximate to another user. In particularembodiments, the second user 182 may have checked-in at the samelocation as the first user 180, e.g., checked in at the same restaurant,store, place of business, street address, or the like.

In particular embodiments, the voice command may comprise a name thatrefers to a plurality of users having the same name, and thesocial-networking system 160 may determine which of the plurality ofusers the name refers to based on the second user 182's social-graphconnections. For example, the name “Matt” may be disambiguated byselecting a user named “Matt” who is connected to the second user 182 asa friend in the social graph 200. If the second user 182 has multiplefriends named “Matt” then other factors may be used to select theclosest friend named Matt, e.g., the Matt having the lowest degree ofseparation from the second user 182, having the greatest affinitycoefficient for the second user 182, or having the most friends incommon with the second user 182. In particular embodiments, the user towhom the name refers may be determined by comparing a degree ofseparation between the second user 182 and a first one of the pluralityof users to a degree of separation between the second user and thesecond one of the plurality of users, and selecting the user having thesmaller degree of separation as the user the name refers to. Inparticular embodiments, the user to whom the name refers to may bedetermined by comparing an affinity coefficient calculated based on thesecond user 182 and the first one of the plurality of users to anaffinity coefficient calculated based on the second user and the secondone of the plurality of users, and selecting the user having the greateraffinity as the user the name refers to. Although this disclosuredescribes receiving an audio input in a particular manner, thisdisclosure contemplates receiving an audio input in any suitable manner.

In particular embodiments, the social-networking system 160 may identifythe second user 182 based on a comparison of the audio input to one ormore voiceprints stored by the online social network, wherein eachvoiceprint comprises audio data for auditory identification of a uniqueuser of the online social network. Privacy settings may allow users toopt in or opt out of having the social-networking system 160 identifythem based on voiceprint analysis. In particular embodiments, thesocial-networking system 160 may identify the second user 182 byaccessing one or more voiceprints of one or more friends of the firstuser 180, wherein the one or more voiceprints stored by the onlinesocial network comprise the one or more voiceprints of the friends ofthe first user 180. In particular embodiments, the one or more friendsof the first user 180 may be users of the online social network within asingle degree of separation of the first user 180 within social graph200. Although this disclosure describes identifying a user based on acomparison of audio in a particular manner, this disclosure contemplatesidentifying the user based on a comparison of audio in any suitablemanner.

In particular embodiments, the social-networking system 160 maydetermine a relationship status between the first user 180 and theidentified second user 182 within the online social network. Therelationship status may be, for example, existence or non-existence of afriend relationship between the two users. Although this disclosuredescribes determining a relationship status between two users in aparticular manner, this disclosure contemplates determining arelationship status between two users in any suitable manner.

In particular embodiments, the social-networking system 160 maydetermine whether to perform an action associated with each voicecommand based on permission settings associated with the action and thedetermined relationship status between the first user 180 and theidentified second user 182. In particular embodiments, thesocial-networking system 160 may determine to perform the action whenthe permission settings indicate that the second user 182 has permissionto perform the action. In particular embodiments, the permissionsettings may be associated with a user account of the second user 182.In particular embodiments, the social-networking system 160 maydetermine to perform the action when the determined relationship statusindicates that the identified second user 182 is within a thresholddegree of separation of the first user 180 on the online social network.

In particular embodiments, the social-networking system 160 may identifythe second user 182 as a new user when the audio input does notcorrespond to the one or more voiceprints, generate a new voiceprint forthe second user 182 based on the audio input, and store the newvoiceprint in association with the second user 182 for subsequent accessby the online social network. Privacy settings may allow users to opt inor opt out of having the social-networking system 160 generate or storevoiceprints associated with them.

In particular embodiments, the social-networking system 160 may performthe action associated with each voice command using a user identityassociated with the second user 182. In particular embodiments, thevoice command may comprise a word referring to the second user 182 and aname of an object on the social network. The word may be the name of thesecond user 182, e.g., the first name, last name, first and last name,nickname, or the like. The word may alternatively be a pronoun such ashe, she, him, her, or the like. In particular embodiments, thesocial-networking system 160 may identify the object as being associatedwith the user identity of the second user 182. Although this disclosuredescribes performing an action associated with a voice command in aparticular manner, this disclosure contemplates performing an actionassociated with a voice command in any suitable manner.

FIG. 3 illustrates an example method 300 for identifying users of asocial-networking system 160 based on their voiceprints. The method 300may begin at step 310, where the social-networking system 160 mayreceive, from a client system of a first user 180 of an online socialnetwork, an audio input from a second user 182, wherein the audio inputcomprises one or more voice commands. At step 320, the social-networkingsystem 160 may identify the second user 182 based on a comparison of theaudio input to one or more voiceprints stored by the online socialnetwork, wherein each voiceprint comprises audio data for auditoryidentification of a unique user of the online social network. Privacysettings may allow users to opt in or opt out of having thesocial-networking system 160 record or analyze the user's voice, orhaving the social-networking system 160 perform any voiceprint analysisrelated to the user. At step 330, the social-networking system 160 maydetermine a relationship status between the first user 180 and theidentified second user 182 within the online social network. At step340, the social-networking system 160 may determine whether to performan action associated with each voice command based on permissionsettings associated with the action and the determined relationshipstatus between the first user 180 and the identified second user 182. Atstep 350, the social-networking system 160 may perform the actionassociated with each voice command using a user identity associated withthe second user 182. Particular embodiments may repeat one or more stepsof the method of FIG. 3 , where appropriate. Although this disclosuredescribes and illustrates particular steps of the method of FIG. 3 asoccurring in a particular order, this disclosure contemplates anysuitable steps of the method of FIG. 3 occurring in any suitable order.Moreover, although this disclosure describes and illustrates an examplemethod for identifying users of a social-networking system based ontheir voiceprints including the particular steps of the method of FIG. 3, this disclosure contemplates any suitable method for identifying usersof a social-networking system based on their voiceprints including anysuitable steps, which may include all, some, or none of the steps of themethod of FIG. 3 , where appropriate. Furthermore, although thisdisclosure describes and illustrates particular components, devices, orsystems carrying out particular steps of the method of FIG. 3 , thisdisclosure contemplates any suitable combination of any suitablecomponents, devices, or systems carrying out any suitable steps of themethod of FIG. 3 .

Voice Printing Identity Probability

In particular embodiments, the social-networking system 160 may receive,from a client system 130 of a first user 180 of the online socialnetwork, an audio input from an unknown user 182, identify one or morecandidate users of the online social network who are within a thresholddegree of separation of the first user 180, calculate, for eachcandidate user, a probability that the unknown user 182 is the candidateuser, wherein the probability is based on a comparison of the audioinput to a voiceprint of the candidate user stored by the online socialnetwork, and identify one of the candidate users as being the unknownuser 182 based on the calculated probability scores of the candidateusers. Privacy settings may allow users to opt in or opt out of havingthe social-networking system 160 identify them based on voiceprintanalysis.

In particular embodiments, the social-networking system 160 may collectaudio input from and generate corresponding voiceprints for identifiedusers who do not have voiceprints associated with theirsocial-networking user information. Audio input may be collected by userdevices 130, 190, 192 (e.g., the client system 130 may be a user'ssmartphone, or a TV associated with a media device 192 can be configuredto collect voice inputs and send them to the social network foranalysis) or by devices located in public places (e.g., a BLUETOOTHbeacon 190 located in a store or restaurant). The generated voiceprintsmay be associated with the corresponding identified users in thesocial-networking system 160, and the association may subsequently beused to identify the corresponding users or determine probabilities thatunidentified or unknown users are the corresponding users. Privacysettings may allow users to opt in or opt out of having thesocial-networking system 160 associate voiceprints with them or usetheir voiceprints to identify them or other users based on voiceprintanalysis.

In particular embodiments, the social-networking system 160 may receivean audio input from an unknown user 182 who is not associated with avoiceprint, and associate the audio input with a candidatesocial-networking user and a probability that the audio input was spokenby the candidate user. The probability may also be understood as aprobability that the unknown user 182 is the candidate user. Avoiceprint may then be generated based on the audio input and associatedwith the candidate user and the probability. The candidate user and theprobability may be determined by correlating where or when the audioinput was received with the candidate user's social-networkinginformation and information about any known users who may be connectedto the candidate user in the social-networking system 160 and/or locatedat or near the location of the candidate user. The known users may beunderstood as “seed” users whose identities may be used to reduce theset of recorded voiceprints that are compared to the audio inputreceived from the unknown speaker, thereby improving the efficiency ofassociating unknown users with voiceprints. A known user may be a userwho has been identified, e.g., by checking-in at or near the locationwhere, and at or soon before (e.g., 1, 5, 10, 60 minutes before) thetime at which the audio input was received, or by having their voicematched to their voiceprint. A known user may also be a friend in thesocial-networking system 160 of another known user. Privacy settings mayallow users to opt in or opt out of having the social-networking system160 use their identities, voiceprints, and/or other informationassociated with them, such as their location, to identify them based onvoiceprint analysis.

The following examples illustrate how, in particular embodiments, thesocial-networking system 160 may receive audio input from an unknownuser 182, identify a candidate user of the online social network basedon the audio input and other factors, and assign a voiceprint andcorresponding probability to the candidate user. The voiceprint may begenerated based on the audio input. In one example, a user 180's voicemay be captured by a client system 130 that is itself directlyassociated with (e.g., owned by or registered to) the speaking user 180.In this case, the user 180 acts as both the unknown user 182 and theknown seed user. For example, suppose that Julian is a user of theonline social network but does not have a voiceprint associated with hisonline social network identity. If Julian opens a social-networkingapplication (e.g., on his smartphone), and the application capturesaudio input that consistently matches the same voiceprint, then thesocial-networking system 160 may assign a relatively high (e.g., 85%,90%, 95%, or the like) probability that the voiceprint corresponds toJulian. Privacy settings may allow users to opt in or opt out of havingthe social-networking system 160 identify them based on audio input froma device such as their smartphone or other device.

As another example, a user 182's voice may be captured by a device thatis associated with a first user 180 of the user 182. In this case, thefirst user 180 acts as the known seed user. For example, suppose thatJulian is friends with Alice and is at Alice's house. Alice has a mediadevice 192 (e.g., a dongle connected to a TV) that listens for voicecommands and receives audio input containing Alice's voice (which isrecognized) along with Julian's voice (which is not recognized). Thesocial-networking system 160 compares Julian's voice to knownvoiceprints for Alice's friends, but does not find a match. Thesocial-networking system 160 may identify Julian as being associatedwith the captured voice, and may assign a relatively low probability(e.g., 20%, 25%, 30%, or the like) that the captured voiceprintcorresponds to Julian. As a further example, the social-networkingsystem 160 may refine or update the probability as new information iscollected. For example, if the media device 192 receives Alice speakingJulian's name (e.g., Alice says “Hello, Julian”), then the probabilitythat the captured voiceprint corresponds to Julian may be increased tomedium-high, e.g., 65%, 70%, 75%, or the like. Additionally, if Julianchecks-in or provides his location so the social-networking system 160determines he is located at Alice's house, then the probability may befurther increased to high, e.g., 80%, 90%, or 99%. Privacy settings mayallow users to opt in or opt out of having the social-networking system160 identify them or other users, such as their friends or connections,based on voiceprint analysis.

As another example, a user's voice may be captured by a device 190 in apublic location. Suppose that Julian checks-in to a restaurant that hasa BLUETOOTH beacon 190 with voice-capture capabilities. The BLUETOOTHbeacon 190 detects Julian's voice, e.g., by receiving audio input thatthe social-networking system 160 determines contains Julian's voice,and, based on Julian performing a check-in, the social-networking system160 may assign a medium (e.g., 40%, 50%, 60%, or the like) probabilitythat the voiceprint is associated with Julian. Later, Yoko (a friend ofJulian) shows up and checks-in to the restaurant, and the BLUETOOTHbeacon 190 detects, e.g., receives audio input that thesocial-networking system 160 determines includes a conversation betweenJulian and Yoko. The probability that the voiceprint is associated withJulian may be increased to medium-high (e.g., 80%, 85%, 90%) based onYoko checking-in, on detecting Yoko's voice, or on detecting Yoko sayingJulian's name. As another example, suppose that Julian and Debbie arefriends, and Julian and Debbie are shopping at a store where Debbie haschecked-in. A listening device at the store, e.g., a BLUETOOTH beacon190, receives a voice input and associates a corresponding voiceprintwith Julian with a medium (e.g., 45%, 50%, 55%, or the like)probability. Later, while shopping, the listening device receives audioinput that is determined to include Debbie saying Julian's name, and theprobability is increased to medium-high (e.g., 75%, 80%, 85%, or thelike). Then, Julian opens up a social-networking application on hisclient system 130 that provides his location, and the probability isaccordingly increased to high (e.g., 90%, 95%, 98%, or the like). Asanother example, suppose that Julian is talking with Carl, who has avoiceprint stored on the social-networking system 160. Carl ischecked-in to a location that has a listening device, and the listeningdevice detects a conversation between Julian and Carl. Based on theirconversation, the social-networking system 160 may assign a voiceprintto Julian. For example, Carl may say Julian's name. Or, one of them maysay “how is Jill doing?”, and the social-networking system 160 maydetermine that both Carl and Julian have a friend named Jill. As anotherexample, if the social-networking system 160 is unable to identify anunknown user 182 with at least a threshold probability, thesocial-networking system 160 may send a message to a known user 180 toconfirm the identity of the unknown user 182. For example, if the systemdetermines there is a medium (e.g., 60%, 65%, or 70%) probability thatan unknown user 182 from whom audio input has been received near Carl'sphone is Julian, the social-networking system 160 may send a message toCarl that says “Are you talking with Julian right now?” Privacy settingsmay allow users to opt in or opt out of having the social-networkingsystem 160 identify them based on voiceprint analysis or use theirsocial-network identity or associated information, such as location,check-ins, connections, to identify them or other users of the onlinesocial network.

As still another example, a voiceprint identification may be determinedbased on multiple voice inputs captured by multiple (e.g., two or more)devices 130, 190, 192. For example, suppose that Julian and Sam arefriends, and Julian goes to a party at Sam's house. A device at Sam'shouse (e.g., a media device 192 connected to Sam's TV) receives Julian'svoice as well as the voices of other people at the party. Later in theweek, Julian checks-in to a coffee shop, and a BLUETOOTH beacon 190 atthe coffee shop receives Julian's voice and determines that it matchesthe voice captured at the party. The social network may then associateJulian with the captured voiceprint and assign a high (e.g., 85%, 90%,90%, or the like) probability that the voiceprint is associated withJulian.

As another example, a voiceprint identification may be determined basedon a user's behavioral patterns. For example, suppose that Julian goesto his favorite coffee shop most weekday mornings. Julian checks-in tothe coffee shop, and a listening device such as a BLUETOOTH beacon 190located there receives Julian's voice. By correlating Julian's check-inswith the location at which Julian's voice is received, thesocial-networking system 160 may assign a voiceprint to Julian alongwith a particular probability score, such as a high (e.g., 80%, 85%,90%, or the like) score. Privacy settings may allow users to opt in oropt out of having the social-networking system 160 identify them ortheir voiceprint based on their behavioral patterns.

In particular embodiments, the social-networking system 160 may receive,from a client system 130 of a first user 180 of the online socialnetwork, a first audio input from an unknown user 182. In particularembodiments, the client system 130 of the first user 180 may be, e.g., amobile device such as a smartphone, a media device 192, a BLUETOOTHbeacon 190, or the like. In particular embodiments, the first user 180may be one or more of a user logged into the client system 130, a userusing an application on the client system 130, or an owner of the clientsystem 130. In particular embodiments, the social-networking system 160may receive identity information for the unknown user 182, generate anew voiceprint based on the first audio input, and store the newvoiceprint in association with the identity information for subsequentaccess by the social networking system 160. Privacy settings may allowusers to opt in or opt out of having the social-networking system 160use audio input from their client system for voiceprint analysis.Although this disclosure describes receiving audio input in a particularmanner, this disclosure contemplates receiving audio input in anysuitable manner.

In particular embodiments, the social-networking system 160 may identifyone or more candidate users, wherein each candidate user is a user ofthe social networking system 130 within a threshold degree of separationof a known user. Privacy settings may allow users to opt in or opt outof having the social-networking system 160 identify them as candidateusers. Although this disclosure describes identifying candidate users ina particular manner, this disclosure contemplates identifying candidateusers in any suitable manner.

In particular embodiments, the social-networking system 160 maycalculate, for each candidate user, a probability score representing aprobability that the unknown user 182 is the candidate user, wherein theprobability score is based on a comparison of the first audio input to avoiceprint of the candidate user stored by the online social network,wherein each voiceprint comprises audio data for auditory identificationof the candidate user. In particular embodiments, the known user may bethe first user 180, the candidate users may include the first user 180,and the probability score may be proportional to a number of times thefirst audio input matches a particular voiceprint. In particularembodiments, the known user may be the first user 180, the candidateusers may comprise one or more friends of the first user 180 within thethreshold degree of separation, and the probability score may be atleast low. In particular embodiments, the probability score may bedetermined based on a behavioral pattern of the first user 180. Inparticular embodiments, the probability score may be high when thebehavioral pattern comprises the first user 180 periodically checking inat a location, and a listening device such as a client system 130, aBLUETOOTH beacon 190, a media device 192, or the like, detects the firstuser 180's voice at the location. Although this disclosure describescalculating probability scores for candidate users in a particularmanner, this disclosure contemplates calculating probability scores forcandidate users in any suitable manner.

In particular embodiments, the social-networking system 160 may identifyone of the candidate users as being the unknown user 180 based on thecalculated probability scores of the candidate users. Although thisdisclosure describes identifying one or the candidate users as being theunknown user in a particular manner, this disclosure contemplatesidentifying one or the candidate users as being the unknown user in anysuitable manner.

In particular embodiments, the social-networking system 160 may receive,at the client system 130 of the first user 180, a second audio input,and may increase the probability score to at least high in response tothe second audio input matching a voiceprint of the known user and thesecond audio input comprising a name of the candidate user spoken by theknown user. In particular embodiments, the social-networking system 160may determine that the candidate user is proximate to the known user,and increase the probability score to at least high in response todetermining that the candidate user is proximate to the known user. Inparticular embodiments, the determining that the candidate user isproximate to the known user may comprise detecting that the candidateuser has checked in at a location proximate to the known user.

In particular embodiments, the social-networking system 160 may receive,by a listening device in a public location, a second audio input, andincrease the probability score to at least medium in response todetecting that the candidate user has checked in at a location proximateto the listening device, which may be, e.g., the client system 130, theBLUETOOTH beacon 190, the media device 192, or other device capable ofreceiving audio input. In particular embodiments, the social-networkingsystem 160 may increase the probability score to at least high inresponse to detecting that the known user is located proximate to thelistening device. In particular embodiments, the social-networkingsystem 160 may detect that the known user is located proximate to thelistening device by detecting that the known user has checked in at alocation proximate to the listening device, detecting that the secondaudio input matches a voiceprint of the known user, or detecting thatthe second audio input comprises a name of the candidate user spoken bythe known user.

FIG. 4 illustrates an example method 400 for associating voiceprintswith unknown users and determining probabilities that the voiceprintscorrespond to the unknown users. The method 400 may begin at step 410,where the social-networking system 160 may receive, from a client system130 of a first user 180 of the online social network, an audio inputfrom an unknown user 182. At step 420, the social-networking system 160may identify one or more candidate users, wherein each candidate user isa user of the online social network within a threshold degree ofseparation of a known user. The unknown user may be the first user 180.At step 430, the social-networking system 160 may calculate, for eachcandidate user, a probability score representing a probability that theunknown user is the candidate user, wherein the probability score isbased on a comparison of the audio input to a voiceprint of thecandidate user stored by the online social network, wherein eachvoiceprint comprises audio data for auditory identification of thecandidate user. At step 440, the social-networking system 160 mayidentify one of the candidate users as being the unknown user 180 basedon the calculated probability scores of the candidate users. Particularembodiments may repeat one or more steps of the method of FIG. 4 , whereappropriate. Although this disclosure describes and illustratesparticular steps of the method of FIG. 4 as occurring in a particularorder, this disclosure contemplates any suitable steps of the method ofFIG. 4 occurring in any suitable order. Moreover, although thisdisclosure describes and illustrates an example method for associatingvoiceprints with unknown users and determining probabilities that thevoiceprints correspond to the unknown users including the particularsteps of the method of FIG. 4 , this disclosure contemplates anysuitable method for associating voiceprints with unknown users anddetermining probabilities that the voiceprints correspond to the unknownusers including any suitable steps, which may include all, some, or noneof the steps of the method of FIG. 4 , where appropriate. Furthermore,although this disclosure describes and illustrates particularcomponents, devices, or systems carrying out particular steps of themethod of FIG. 4 , this disclosure contemplates any suitable combinationof any suitable components, devices, or systems carrying out anysuitable steps of the method of FIG. 4 .

Voice Printing Authentication

In particular embodiments, the social-networking system 160 may use auser's voiceprint to authenticate the user to a client system 130associated with the social-networking system 160. Privacy settings mayallow users to opt in or opt out of allowing authentication to thesocial-networking system based on voiceprint analysis. For example, auser's voiceprint may be used as part of a two-factor authenticationprocess involving (1) determining a user's identity based on biometricidentification and/or social-networking information, and (2) verifyingthe user's identity based on a voiceprint match. This biometricvoiceprint authentication process may be more secure than biometricauthentication based solely on sampling physical characteristics such asthumb or retina scans. This process may also be more convenient forusers than password-based authentications, since speaking anauthentication code is easier than inputting a password, passcode, orPIN. The biometric voiceprint authentication process can be used toauthenticate a user 180 so that the user 180 can access an applicationor content, such as their online social-network feed, on the clientsystem 130.

In particular embodiments, the social-networking system 160 may beginthe authentication process by receiving a biometric identifier (e.g.,fingerprint, retinal scan, iris scan, or facial scan) and identifying auser 180 who matches the biometric identifier. Thus the user 180 to beauthenticated, who may or may not be an authorized user of the clientsystem 130, may provide a fingerprint or other biometric identifierinstead of a username. Prior to the authentication process, anauthorized user may submit one or more scans of their fingerprint(s) tothe social-networking system 160, which may store the scans inassociation with the authorized user's identity or account information.Subsequently, to identify and/or authenticate the user 180, the user180's fingerprint may be scanned and sent to the social-networkingsystem 160 for comparison with the stored fingerprint scan. If thecomparison indicates a match, then the user 180 has been identified aspotentially being the authorized user. The social-networking system 160may then send one or more words or a phrase, any of which may containspoken numbers and/or letters (e.g., in a text message) for display onthe client system 130. The client system 130 may display the words orphrase with a message requesting the user 180 to speak them. When theuser 180 speaks, the received audio input may be received by the clientsystem 130. Thus, the voice-inputted words or phrase may be used toauthenticate the user 180 instead of a manually inputted PIN orpasscode. The authorized user has previously submitted a voice samplefrom which the authorized user's voiceprint was generated, so thesocial-networking system 130 may verify that the words spoken by theuser 180 match the authorized user's voiceprint. The client system 130may determine whether the audio input contains the words or phrasespoken by the user 180, or may send the audio input to a server 162 ofthe social-networking system 160, which may make the determination andsend the result of the determination back to the client system 130. Thatis, in particular embodiments, the biometric identifier supplied by auser 180 is not analyzed locally by the device 130. For example, thedevice 130 may capture a fingerprint scan and send the scan to thesocial-networking system 160 for comparison with a stored fingerprintscan. Processing the biometric identifier on the social-networkingsystem 160 may be useful for protecting the user's privacy, e.g., byensuring that the device does not store any biometric information thatcould be accessed by third-parties (e.g., other applications on thedevice 130). If the voiceprint matches, the social-networking system 160grants access, for example, to the client system 130 or to theidentified user's social-network feed. The biometric identifier issimilar to a user name or user identifier of the user 180, and the user180's voice is similar to a password. Privacy settings may allow usersto opt in or opt out of allowing their biometric information to be sentto, processed by, and/or stored on the social-networking system.

In particular embodiments, the words or phrase supplied to the user 180may be selected at random or may be based on words that the authorizeduser has previously spoken and have been captured by thesocial-networking system 160. The words or phrase may be, for example, asmall random number (e.g., 2, 3, or 4 digits) or a small number ofrandomly-selected words (e.g., 1, 2, or 3 words). To prevent anunauthorized user from impersonating an authorized user (e.g., byrecording the authorized user saying a password), the words may bechanged or selected at random. For example, the words or phrase maychange at periodic times or each time a word or phrase is supplied tothe user 180. Additionally, the social-networking system 160 may apply amachine learning model to the user 180's voiceprint. For example, theauthorized user may grant permission for an application to sample theauthorized user's voice, and the social-networking system 160 mayperiodically receive samples of the authorized user's voice (e.g., whilethe authorized user is using the client system 130) as audio input andupdate a corresponding voiceprint, a set of words, or learning model.The learning model may recognize words or phrases spoken by the user 180as being in the authorized user's voice, and may identify the user 180as the authorized user based on their voice, e.g., with a high degree ofconfidence, without providing a specific word or phrase for the user 180to speak. The social-networking system 160 may use the learning model toverify that the authorized user has spoken the phrase. That is, thelearning model may enable identification of users based on their voices,so that the specific word or phrase, such as a random word or number,need not be used for user identification.

In another embodiment, the first step of the authentication process mayinvolve the user 180's location or the identities of one or more otherusers who are located near the user 180. For example, if another userlocated near a first user 180's client system is authenticated and isthe first user 180's friend, then the social-networking system mayproceed through the first step of the authentication process based onthat information. This approach may be used, for example, for a firstuser 180 whose client system 130 is locked and has a social-networkingapplication running in the background.

In particular embodiments, a user 180 may gain access to a friend'sclient system 130 based on two-factor authentication. For example, auser 180 may want to access their own social-networking feed on afriend's client system 130. The user 180 may supply his or her biometricidentifier (e.g., fingerprint) to the friend's client system 130, andthe friend's client system 130 may send the fingerprint scan to thesocial-networking system 160. The social-networking system 160 mayidentify the user 180 (e.g., by comparing the supplied fingerprint scanto scans associated with users connected to the owner of the clientsystem 130) and verify that the user 180 is a friend of the clientsystem 130's owner. The social-networking system 160 may then send atext message to the client system 130 containing a word or phrase whichthe user 180 must speak in order to gain access to the client system130. Once the user 180 is authenticated on their friend's client system130, the user 180 may be granted access to only certain features orapplications (e.g., the user 180 may only be able to access their ownsocial-networking feed). If a user 180 attempts to gain access toanother person's client system 130 (e.g., by submitting theirfingerprint), and they are not friends in the social networking system160, the social-networking system 130 may deny access to the user 180.Privacy settings may allow users to opt in or opt out of allowing accessto their devices by their friends or other users.

In particular embodiments, the social-networking system 160 may receive,from a client system 130 of a first user 180, a biometric input from asecond user 182, wherein the biometric input is used to identify thesecond user 182 as a user of the online social network. In particularembodiments, the biometric input from the second user 182 may includeone or more of a fingerprint, hand shape, retina pattern, iris pattern,finger vein pattern, faceprint, keystroke pattern, DNA sample,handwritten signature, another suitable biometric input, or anycombination thereof. Privacy settings may allow users to opt in or optout of allowing their client system to be used for authentication oridentification of other users, and may also allow users to opt out ofallowing their identities to be authenticated by other users' clientsystems. Although this disclosure describes receiving biometric input ina particular manner, this disclosure contemplates receiving biometricinput in any suitable manner.

In particular embodiments, the social-networking system 160 maydetermine a relationship status between the first user 180 and thesecond user 182 within the online social network. The relationshipstatus may be, for example, existence or non-existence of a friendrelationship or other type of connection in the social graph between twousers. Although this disclosure describes determining a relationshipstatus between two users in a particular manner, this disclosurecontemplates determining a relationship status between two users in anysuitable manner.

In particular embodiments, the social-networking system 160 may send, tothe client system 130, a temporary personal identifier for presentationto the second user 180 if the relationship status between the first user180 and the second user 182 satisfies threshold criteria. As an exampleand not by way of limitation, the temporary personal identifier may be anumber, word, or phrase. A particular value of the temporary personalidentifier may be valid for a limited time period, e.g., 10 minutes, 30minutes, or one hour. In particular embodiments, the social-networkingsystem 160 may receive, from the client system 130 in response to thepresentation of the temporary personal identifier to the second user182, an audio input from the second user 182. In particular embodiments,the social-networking system 160 may determine, based on a comparison ofthe audio input to a voiceprint of the second user 182 stored by theonline social network, wherein the voiceprint comprises audio data forauditory identification of the second user 182: whether the audio inputwas spoken by the second user 182; and whether the audio input comprisesthe temporary personal identifier spoken by the second user 182.Optionally, the temporary personal identifier may be invalidated afterthe limited time period described above, so that authentication fails ifthe limited time period has passed since the temporary personalidentifier was generated, even if the second user 182 supplies thecorrect temporary personal identifier. Although this disclosuredescribes generating, sending, and receiving a temporary personalidentifier for presentation to a user in a particular manner, thisdisclosure contemplates send, to the client system, a temporary personalidentifier for presentation to a user in any suitable manner.

In particular embodiments, the relationship status between the firstuser 180 and the second user 182 may satisfy the threshold criteria whenthe first user 180 is within a threshold degree of separation of thesecond user 182 within the online social network. In particularembodiments, the relationship status between the first user 180 and thesecond user 182 may satisfy the threshold criteria when the first user180's privacy settings allow the second user 182 to access the clientsystem 130. In particular embodiments, the first user 182 may access theonline social network without providing an authentication code for theclient system 130. Privacy settings may allow users to opt in or opt outof allowing authentication to the social-networking system based onvoiceprint analysis.

In particular embodiments, the social-networking system 160 mayauthenticate the second user 182 to access the online social network viathe client system 130 if the audio input is determined to be spoken bythe second user 182 and comprise the temporary personal identifierspoken by the second user 182. In particular embodiments, thesocial-networking system 160 may access one or more third-partyapplications on the client system 130 in response to authenticating thesecond user 182. In particular embodiments, authenticating the seconduser 182 to access the social-networking system 160 via the clientsystem 130 may grant the second user 182 access to the online socialnetwork using a user identity associated with the second user 182. Inparticular embodiments, authenticating the second user 182 may grant thesecond user 182 access to a social-networking feed associated with thesecond user 182. In particular embodiments, authenticating the seconduser 182 may grant the second user 182 access to information aboutfriends of the second user 182. In particular embodiments, the access tothe online social network granted to the second user 182 may be subjectto social-networking visibility restrictions associated with the seconduser 182. In particular embodiments, authenticating the second user 182may comprise granting the second user 182 access to the online socialnetwork account of the second user 182. Privacy settings may allow usersto opt in or opt out of allowing authentication and access to theironline social network account to the social-networking system based onbiometric information and/or voiceprint analysis.

FIG. 5 illustrates an example method 500 for using biometricidentification and a user 182's voiceprint to authenticate the user 182.The method 500 may begin at step 510, where the social-networking system160 may receive, from a client system 130 of a first user 180, abiometric input from a second user 182, wherein the biometric input isused to identify the second user as a user of the online social network.At step 520, the social-networking system 160 may determine arelationship status between the first user 180 and the second user 182within the online social network. At step 530, the social-networkingsystem 160 may send, to the client system 130, a temporary personalidentifier for presentation to the second user 182 if the relationshipstatus between the first user 180 and the second user 182 satisfiesthreshold criteria. At step 540, the social-networking system 160 mayreceive, from the client system 130 in response to the presentation ofthe temporary personal identifier to the second user 182, an audio inputfrom the second user 182. At step 550, the social-networking system 160may determine, based on a comparison of the audio input to a voiceprintof the second user 182 stored by the online social network, wherein thevoiceprint comprises audio data for auditory identification of thesecond user 182: whether the audio input was spoken by the second user,and whether the audio input comprises the temporary personal identifierspoken by the second user 182. At step 560, the social-networking system160 may authenticate the second user 182 to access the online socialnetwork via the client system 130 if the audio input is determined to bespoken by the second user 182 and comprise the temporary personalidentifier spoken by the second user 182.

Particular embodiments may repeat one or more steps of the method ofFIG. 5 , where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 5 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 5 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates an example method for usingbiometric identification and a user's voiceprint to authenticate theuser including the particular steps of the method of FIG. 5 , thisdisclosure contemplates any suitable method for using biometricidentification and a user's voiceprint to authenticate the userincluding any suitable steps, which may include all, some, or none ofthe steps of the method of FIG. 5 , where appropriate. Furthermore,although this disclosure describes and illustrates particularcomponents, devices, or systems carrying out particular steps of themethod of FIG. 5 , this disclosure contemplates any suitable combinationof any suitable components, devices, or systems carrying out anysuitable steps of the method of FIG. 5 .

Voice Printing Presence Detection

In particular embodiments, the social-networking system 160 may identifyusers from their voiceprints and provide customized content to theidentified users. Privacy settings may allow users to opt in or opt outof having the social-networking system identify them or customizecontent for the user based on voiceprint analysis. A client system 130associated with the social-networking system 160 may detect one or morepeople speaking, and the people speaking may be identified as usersbased on comparison of their voices to voiceprints stored by thesocial-networking system 160. Upon identifying one or more of the peopleas users of the social-networking system 160, the social-networkingsystem 160 may provide customized content to the identified users basedon their social-networking information. The customized content may bepersonalized to match the interests of the identified users, and mayinclude advertisements, news feeds, push notifications, place tips,coupons, or suggestions.

In particular embodiments, when multiple speakers are detected in audioinput received by a client system 130 of the social-networking system160, the social-networking system 160 may use voiceprint analysis toidentify social network users 182 who are connected to a known seeduser, such as an authenticated user 180, e.g., the owner of a listeningphone, and then send content to one or more of the social network usersbased on their interests. For example, suppose that two users, Marshaand Jan, are friends and are watching TV at Marsha's house. Marsha is anauthenticated user of the TV at her house. A media device 192 associatedwith the social-networking system 160 (e.g., a dongle in communicationwith the TV) receives Jan's voice, and the social-networking system 160identifies Jan based on her voiceprint and on her social-graphconnection to Marsha. Content or advertisements may then be provided tothe users (e.g., to the TV, to Jan or Marsha's phone, etc.), and thecontent or advertisements may be customized to the interests of Marshaand Jan (e.g., the TV recommends a show or displays an advertisement fora product that both users are interested in). Content or advertisementsmay be provided to a group of three or more users if at least one of theusers is an authenticated user 180.

In particular embodiments, the social-networking system 160 may use aprocess similar to that described above when the client system 190 thatdetects speaking users is not authenticated to any of the speakers (forexample, a BLUETOOTH beacon 190 in a public place). As an example,suppose that Velma and Daphne walk into a store. Velma is known to be atthe store (e.g., she opens a mobile application from the store on hersmartphone). A BLUETOOTH beacon 190 at the store may then detect Daphnespeaking, and the social-networking system 160 may identify Daphne basedon a voiceprint analysis of Daphne's voice and based on Velma and Daphnebeing socially connected. This identification may occur even if thesocial-networking system 160 does not otherwise detect Daphne's presencein the store (e.g., because location services, GPS, or the like aredisabled or nonfunctional on her phone). The social-networking system160 may then send content or advertisements (e.g., a 2-for-1 coupon tothe store; or an ad for a nearby store that may have relevance to bothusers) to Velma's and/or Daphne's device. Thus, in Daphne's case,content customized for Daphne's location may be sent to her despite herlocation services or GPS being disabled or non-functional. Privacysettings may allow users to opt in or opt out of having thesocial-networking system identify them or customize content for the userbased on voiceprint analysis when they are identified by devices thatare not authenticated to them, such as devices in public places.

In particular embodiments, identification of users may also be appliedto an event, in which case the event may correspond to a seed concept.For example, suppose that a restaurant invites people to an event, and100 users confirm their attendance through the social-networking system160. The restaurant has a BLUETOOTH beacon 192, and users may beidentified by comparing their captured voices to stored voiceprints forthe 100 attendees (as well as friends of the 100 attendees). In thisway, the social-networking system 160 need not compare captured voicesto the voiceprints of social-network users who are not attendees at theevent. Instead, the search space for the voiceprint comparison may bereduced from a large number of users of the social-networking system 160to the relatively small number of users who are associated with theevent, such as the users who have confirmed their attendance on thesocial-networking system 160, and optionally their friends. Onceattendees are identified, the social-networking system 160 may presentinformation to them that is tailored to their interests. Privacysettings may allow users to opt in or opt out of allowing identificationof events they create or manage in the social-networking system based onvoiceprint analysis.

While the processes described above may involve a seed user or a seedconcept, it is possible that initially there are no authenticated users.For example, suppose a user walks into a store and the location servicesor GPS on the user's client system 130 are not active (e.g., BLUETOOTHis turned off and the client system 130 does not have a good GPSsignal). The BLUETOOTH beacon 190 in the store receives the user's voiceand the social-networking system 160 identifies the user based on acomparison to voiceprints in the system. The system may compare theuser's voice with many voiceprints to find a match. Alternatively, thesystem 160 may apply filtering criteria based on time or location, e.g.,to only consider voiceprints of users who have a recent location withina particular distance of the BLUETOOTH beacon.

In particular embodiments, the social-networking system 160 may receive,from a client system 130 at a first location, an audio input from anunknown user 182. Although this disclosure describes receiving an audioinput in a particular manner, this disclosure contemplates receiving anaudio input in any suitable manner. In particular embodiments, thesocial-networking system 160 may identify a first user 180 of the onlinesocial network who is proximate to the first location. As an example andnot by way of limitation, the online social network may receive theidentity of a user proximate to the first location by searching theknown locations of users for locations that are within a thresholddistance of the first location. The known locations of a user may bedetermined by the online social network based on the user's use of aclient system 130 that has sent its geographical location to the onlinesocial network, based on the user checking-in at the geographicallocation, based on identifying the user's voice at the geographicallocation via voiceprint analysis, or based on other techniques describedherein. Although this disclosure describes identifying a user proximateto a location in a particular manner, this disclosure contemplatesidentifying a user proximate to a location in any suitable manner.

In particular embodiments, the social-networking system 160 may identifythe unknown user as a second user 182 of the online social network basedon a comparison of the audio input to one or more voiceprints of one ormore candidate users stored by the online social network, respectively,wherein each voiceprint comprises audio data for auditory identificationof a unique user of the online social network, and wherein eachcandidate user is within a threshold degree of separation of the firstuser 180 within the online social network. Although this disclosuredescribes identifying the unknown user in a particular manner, thisdisclosure contemplates identifying the unknown user as a second in anysuitable manner. Privacy settings may allow users to opt in or opt outof having the social-networking system use their voiceprint or intereststo identify themselves or other users based on voiceprint analysis.

In particular embodiments, the social-networking system 160 may sendcustomized content to one or more of the first user 180 or the seconduser 182 based on their social-networking information. In particularembodiments, the customized content may comprise content associated withthe first location. In particular embodiments, the social-networkingsystem 160 may generate the customized content based on one or moreinterests of the first user 180 or the second user 182, wherein the oneor more interests are received from the online social network. Inparticular embodiments, the customized content may comprise contenthaving one or more topics that match the interests of the first user 180or the second user 182. In particular embodiments, the customizedcontent may comprise advertisements, news feeds, push notifications,place tips, coupons, suggestions, or a combination thereof. Inparticular embodiments, the client system 130 may be a mobile phone, aBLUETOOTH beacon 190, or a media device 192 operable to receive audioinput. In particular embodiments, the media device 192 may be a donglein communication with a television. In particular embodiments, the firstand second users may be associated with an event on the online socialnetwork. In particular embodiments, the first and second users haveconfirmed their attendance at the event to the online social network.Although this disclosure describes generating and sending customizedcontent in a particular manner, this disclosure contemplates generatingand sending customized content in any suitable manner.

FIG. 6 illustrates an example method 600 for identifying users fromtheir voiceprints and providing customized content to the identifiedusers. The method may begin at step 610, where the social-networkingsystem 160 may receive, from a client system 130 at a first location, anaudio input from an unknown user. At step 620, the social-networkingsystem 160 may identify a first user 180 of the online social networkwho is proximate to the first location. At step 630, thesocial-networking system 160 may identify the unknown user as a seconduser 182 of the online social network based on a comparison of the audioinput to one or more voiceprints of one or more candidate users storedby the online social network, respectively, wherein each voiceprintcomprises audio data for auditory identification of a unique user of theonline social network, and wherein each candidate user is within athreshold degree of separation of the first user 180 within the onlinesocial network. At step 640, the social-networking system 160 maygenerate customized content based on one or more interests of the firstuser 180 or the second user 182, wherein the interests are received fromthe online social network. At step 650, the social-networking system 160may send the customized content to one or more of the first user 180 orthe second user 182 based on their social-networking information.Particular embodiments may repeat one or more steps of the method ofFIG. 6 , where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 6 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 6 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates an example method foridentifying users from their voiceprints and providing customizedcontent to the identified users including the particular steps of themethod of FIG. 6 , this disclosure contemplates any suitable method foridentifying users from their voiceprints and providing customizedcontent to the identified users including any suitable steps, which mayinclude all, some, or none of the steps of the method of FIG. 6 , whereappropriate. Furthermore, although this disclosure describes andillustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 6 , this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 6 .

Social Graph Affinity and Coefficient

In particular embodiments, the social-networking system 160 maydetermine the social-graph affinity (which may be referred to herein as“affinity”) of various social-graph entities for each other. Affinitymay represent the strength of a relationship or level of interestbetween particular objects associated with the online social network,such as users, concepts, content, actions, advertisements, other objectsassociated with the online social network, or any suitable combinationthereof. Affinity may also be determined with respect to objectsassociated with third-party systems 170 or other suitable systems. Anoverall affinity for a social-graph entity for each user, subjectmatter, or type of content may be established. The overall affinity maychange based on continued monitoring of the actions or relationshipsassociated with the social-graph entity. Although this disclosuredescribes determining particular affinities in a particular manner, thisdisclosure contemplates determining any suitable affinities in anysuitable manner.

In particular embodiments, the social-networking system 160 may measureor quantify social-graph affinity using an affinity coefficient (whichmay be referred to herein as “coefficient”). The coefficient mayrepresent or quantify the strength of a relationship between particularobjects associated with the online social network. The coefficient mayalso represent a probability or function that measures a predictedprobability that a user will perform a particular action based on theuser's interest in the action. In this way, a user's future actions maybe predicted based on the user's prior actions, where the coefficientmay be calculated at least in part on the history of the user's actions.Coefficients may be used to predict any number of actions, which may bewithin or outside of the online social network. As an example and not byway of limitation, these actions may include various types ofcommunications, such as sending messages, posting content, or commentingon content; various types of observation actions, such as accessing orviewing profile interfaces, media, or other suitable content; varioustypes of coincidence information about two or more social-graphentities, such as being in the same group, tagged in the samephotograph, checked-in at the same location, or attending the sameevent; or other suitable actions. Although this disclosure describesmeasuring affinity in a particular manner, this disclosure contemplatesmeasuring affinity in any suitable manner.

In particular embodiments, the social-networking system 160 may use avariety of factors to calculate a coefficient. These factors mayinclude, for example, user actions, types of relationships betweenobjects, location information, other suitable factors, or anycombination thereof. In particular embodiments, different factors may beweighted differently when calculating the coefficient. The weights foreach factor may be static or the weights may change according to, forexample, the user, the type of relationship, the type of action, theuser's location, and so forth. Ratings for the factors may be combinedaccording to their weights to determine an overall coefficient for theuser. As an example and not by way of limitation, particular useractions may be assigned both a rating and a weight while a relationshipassociated with the particular user action is assigned a rating and acorrelating weight (e.g., so the weights total 100%). To calculate thecoefficient of a user towards a particular object, the rating assignedto the user's actions may comprise, for example, 60% of the overallcoefficient, while the relationship between the user and the object maycomprise 40% of the overall coefficient. In particular embodiments, thesocial-networking system 160 may consider a variety of variables whendetermining weights for various factors used to calculate a coefficient,such as, for example, the time since information was accessed, decayfactors, frequency of access, relationship to information orrelationship to the object about which information was accessed,relationship to social-graph entities connected to the object, short- orlong-term averages of user actions, user feedback, other suitablevariables, or any combination thereof. As an example and not by way oflimitation, a coefficient may include a decay factor that causes thestrength of the signal provided by particular actions to decay withtime, such that more recent actions are more relevant when calculatingthe coefficient. The ratings and weights may be continuously updatedbased on continued tracking of the actions upon which the coefficient isbased. Any type of process or algorithm may be employed for assigning,combining, averaging, and so forth the ratings for each factor and theweights assigned to the factors. In particular embodiments, thesocial-networking system 160 may determine coefficients usingmachine-learning algorithms trained on historical actions and past userresponses, or data farmed from users by exposing them to various optionsand measuring responses. Although this disclosure describes calculatingcoefficients in a particular manner, this disclosure contemplatescalculating coefficients in any suitable manner.

In particular embodiments, the social-networking system 160 maycalculate a coefficient based on a user's actions. The social-networkingsystem 160 may monitor such actions on the online social network, on athird-party system 170, on other suitable systems, or any combinationthereof. Any suitable type of user actions may be tracked or monitored.Typical user actions include viewing profile interfaces, creating orposting content, interacting with content, tagging or being tagged inimages, joining groups, listing and confirming attendance at events,checking-in at locations, liking particular interfaces, creatinginterfaces, and performing other tasks that facilitate social action. Inparticular embodiments, the social-networking system 160 may calculate acoefficient based on the user's actions with particular types ofcontent. The content may be associated with the online social network, athird-party system 170, or another suitable system. The content mayinclude users, profile interfaces, posts, news stories, headlines,instant messages, chat room conversations, emails, advertisements,pictures, video, music, other suitable objects, or any combinationthereof. The social-networking system 160 may analyze a user's actionsto determine whether one or more of the actions indicate an affinity forsubject matter, content, other users, and so forth. As an example andnot by way of limitation, if a user may make frequently posts contentrelated to “coffee” or variants thereof, the social-networking system160 may determine the user has a high coefficient with respect to theconcept “coffee”. Particular actions or types of actions may be assigneda higher weight and/or rating than other actions, which may affect theoverall calculated coefficient. As an example and not by way oflimitation, if a first user emails a second user, the weight or therating for the action may be higher than if the first user simply viewsthe user-profile interface for the second user.

In particular embodiments, the social-networking system 160 maycalculate a coefficient based on the type of relationship betweenparticular objects. Referencing the social graph 200, thesocial-networking system 160 may analyze the number and/or type of edges206 connecting particular user nodes 202 and concept nodes 204 whencalculating a coefficient. As an example and not by way of limitation,user nodes 202 that are connected by a spouse-type edge (representingthat the two users are married) may be assigned a higher coefficientthan a user nodes 202 that are connected by a friend-type edge. In otherwords, depending upon the weights assigned to the actions andrelationships for the particular user, the overall affinity may bedetermined to be higher for content about the user's spouse than forcontent about the user's friend. In particular embodiments, therelationships a user has with another object may affect the weightsand/or the ratings of the user's actions with respect to calculating thecoefficient for that object. As an example and not by way of limitation,if a user is tagged in first photo, but merely likes a second photo, thesocial-networking system 160 may determine that the user has a highercoefficient with respect to the first photo than the second photobecause having a tagged-in-type relationship with content may beassigned a higher weight and/or rating than having a like-typerelationship with content. In particular embodiments, thesocial-networking system 160 may calculate a coefficient for a firstuser based on the relationship one or more second users have with aparticular object. In other words, the connections and coefficientsother users have with an object may affect the first user's coefficientfor the object. As an example and not by way of limitation, if a firstuser is connected to or has a high coefficient for one or more secondusers, and those second users are connected to or have a highcoefficient for a particular object, the social-networking system 160may determine that the first user should also have a relatively highcoefficient for the particular object. In particular embodiments, thecoefficient may be based on the degree of separation between particularobjects. The lower coefficient may represent the decreasing likelihoodthat the first user will share an interest in content objects of theuser that is indirectly connected to the first user in the social graph200. As an example and not by way of limitation, social-graph entitiesthat are closer in the social graph 200 (i.e., fewer degrees ofseparation) may have a higher coefficient than entities that are furtherapart in the social graph 200.

In particular embodiments, the social-networking system 160 maycalculate a coefficient based on location information. Objects that aregeographically closer to each other may be considered to be more relatedor of more interest to each other than more distant objects. Inparticular embodiments, the coefficient of a user towards a particularobject may be based on the proximity of the object's location to acurrent location associated with the user (or the location of a clientsystem 130 of the user). A first user may be more interested in otherusers or concepts that are closer to the first user. As an example andnot by way of limitation, if a user is one mile from an airport and twomiles from a gas station, the social-networking system 160 may determinethat the user has a higher coefficient for the airport than the gasstation based on the proximity of the airport to the user.

In particular embodiments, the social-networking system 160 may performparticular actions with respect to a user based on coefficientinformation. Coefficients may be used to predict whether a user willperform a particular action based on the user's interest in the action.A coefficient may be used when generating or presenting any type ofobjects to a user, such as advertisements, search results, news stories,media, messages, notifications, or other suitable objects. Thecoefficient may also be utilized to rank and order such objects, asappropriate. In this way, the social-networking system 160 may provideinformation that is relevant to user's interests and currentcircumstances, increasing the likelihood that they will find suchinformation of interest. In particular embodiments, thesocial-networking system 160 may generate content based on coefficientinformation. Content objects may be provided or selected based oncoefficients specific to a user. As an example and not by way oflimitation, the coefficient may be used to generate media for the user,where the user may be presented with media for which the user has a highoverall coefficient with respect to the media object. As another exampleand not by way of limitation, the coefficient may be used to generateadvertisements for the user, where the user may be presented withadvertisements for which the user has a high overall coefficient withrespect to the advertised object. In particular embodiments, thesocial-networking system 160 may generate search results based oncoefficient information. Search results for a particular user may bescored or ranked based on the coefficient associated with the searchresults with respect to the querying user. As an example and not by wayof limitation, search results corresponding to objects with highercoefficients may be ranked higher on a search-results interface thanresults corresponding to objects having lower coefficients.

In particular embodiments, the social-networking system 160 maycalculate a coefficient in response to a request for a coefficient froma particular system or process. To predict the likely actions a user maytake (or may be the subject of) in a given situation, any process mayrequest a calculated coefficient for a user. The request may alsoinclude a set of weights to use for various factors used to calculatethe coefficient. This request may come from a process running on theonline social network, from a third-party system 170 (e.g., via an APIor other communication channel), or from another suitable system. Inresponse to the request, the social-networking system 160 may calculatethe coefficient (or access the coefficient information if it haspreviously been calculated and stored). In particular embodiments, thesocial-networking system 160 may measure an affinity with respect to aparticular process. Different processes (both internal and external tothe online social network) may request a coefficient for a particularobject or set of objects. The social-networking system 160 may provide ameasure of affinity that is relevant to the particular process thatrequested the measure of affinity. In this way, each process receives ameasure of affinity that is tailored for the different context in whichthe process will use the measure of affinity.

In connection with social-graph affinity and affinity coefficients,particular embodiments may utilize one or more systems, components,elements, functions, methods, operations, or steps disclosed in U.S.patent application Ser. No. 11/503,093, filed 11 Aug. 2006, U.S. patentapplication Ser. No. 12/977,027, filed 22 Dec. 2010, U.S. patentapplication Ser. No. 12/978,265, filed 23 Dec. 2010, and U.S. patentapplication Ser. No. 13/632,869, filed 1 Oct. 2012, each of which isincorporated by reference.

Advertising

In particular embodiments, an advertisement may be text (which may beHTML-linked), one or more images (which may be HTML-linked), one or morevideos, audio, one or more ADOBE FLASH files, a suitable combination ofthese, or any other suitable advertisement in any suitable digitalformat presented on one or more web interfaces, in one or more e-mails,or in connection with search results requested by a user. In addition oras an alternative, an advertisement may be one or more sponsored stories(e.g., a news-feed or ticker item on the social-networking system 160).A sponsored story may be a social action by a user (such as “liking” aninterface, “liking” or commenting on a post on an interface, RSVPing toan event associated with an interface, voting on a question posted on aninterface, checking in to a place, using an application or playing agame, or “liking” or sharing a website) that an advertiser promotes, forexample, by having the social action presented within a pre-determinedarea of a profile interface of a user or other interface, presented withadditional information associated with the advertiser, bumped up orotherwise highlighted within news feeds or tickers of other users, orotherwise promoted. The advertiser may pay to have the social actionpromoted. As an example and not by way of limitation, advertisements maybe included among the search results of a search-results interface,where sponsored content is promoted over non-sponsored content.

In particular embodiments, an advertisement may be requested for displaywithin social-networking-system web interfaces, third-party webinterfaces, or other interfaces. An advertisement may be displayed in adedicated portion of an interface, such as in a banner area at the topof the interface, in a column at the side of the interface, in a GUIwithin the interface, in a pop-up window, in a drop-down menu, in aninput field of the interface, over the top of content of the interface,or elsewhere with respect to the interface. In addition or as analternative, an advertisement may be displayed within an application. Anadvertisement may be displayed within dedicated interfaces, requiringthe user to interact with or watch the advertisement before the user mayaccess an interface or utilize an application. The user may, for exampleview the advertisement through a web browser.

A user may interact with an advertisement in any suitable manner. Theuser may click or otherwise select the advertisement. By selecting theadvertisement, the user may be directed to (or a browser or otherapplication being used by the user) an interface associated with theadvertisement. At the interface associated with the advertisement, theuser may take additional actions, such as purchasing a product orservice associated with the advertisement, receiving informationassociated with the advertisement, or subscribing to a newsletterassociated with the advertisement. An advertisement with audio or videomay be played by selecting a component of the advertisement (like a“play button”). Alternatively, by selecting the advertisement, thesocial-networking system 160 may execute or modify a particular actionof the user.

An advertisement may also include social-networking-system functionalitythat a user may interact with. As an example and not by way oflimitation, an advertisement may enable a user to “like” or otherwiseendorse the advertisement by selecting an icon or link associated withendorsement. As another example and not by way of limitation, anadvertisement may enable a user to search (e.g., by executing a query)for content related to the advertiser. Similarly, a user may share theadvertisement with another user (e.g., through the social-networkingsystem 160) or RSVP (e.g., through the social-networking system 160) toan event associated with the advertisement. In addition or as analternative, an advertisement may include social-networking-systemcontent directed to the user. As an example and not by way oflimitation, an advertisement may display information about a friend ofthe user within the social-networking system 160 who has taken an actionassociated with the subject matter of the advertisement.

Privacy

In particular embodiments, one or more objects (e.g., content or othertypes of objects) of a computing system may be associated with one ormore privacy settings. The one or more objects may be stored on orotherwise associated with any suitable computing system or application,such as, for example, a social-networking system 160, a client system130, a third-party system 170, a social-networking application, amessaging application, a photo-sharing application, or any othersuitable computing system or application. Although the examplesdiscussed herein are in the context of an online social network, theseprivacy settings may be applied to any other suitable computing system.Privacy settings (or “access settings”) for an object may be stored inany suitable manner, such as, for example, in association with theobject, in an index on an authorization server, in another suitablemanner, or any suitable combination thereof. A privacy setting for anobject may specify how the object (or particular information associatedwith the object) can be accessed, stored, or otherwise used (e.g.,viewed, shared, modified, copied, executed, surfaced, or identified)within the online social network. When privacy settings for an objectallow a particular user or other entity to access that object, theobject may be described as being “visible” with respect to that user orother entity. As an example and not by way of limitation, a user of theonline social network may specify privacy settings for a user-profilepage that identify a set of users that may access work-experienceinformation on the user-profile page, thus excluding other users fromaccessing that information.

In particular embodiments, privacy settings for an object may specify a“blocked list” of users or other entities that should not be allowed toaccess certain information associated with the object. In particularembodiments, the blocked list may include third-party entities. Theblocked list may specify one or more users or entities for which anobject is not visible. As an example and not by way of limitation, auser may specify a set of users who may not access photo albumsassociated with the user, thus excluding those users from accessing thephoto albums (while also possibly allowing certain users not within thespecified set of users to access the photo albums). In particularembodiments, privacy settings may be associated with particularsocial-graph elements. Privacy settings of a social-graph element, suchas a node or an edge, may specify how the social-graph element,information associated with the social-graph element, or objectsassociated with the social-graph element can be accessed using theonline social network. As an example and not by way of limitation, aparticular concept node 204 corresponding to a particular photo may havea privacy setting specifying that the photo may be accessed only byusers tagged in the photo and friends of the users tagged in the photo.In particular embodiments, privacy settings may allow users to opt in toor opt out of having their content, information, or actionsstored/logged by the social-networking system 160 or shared with othersystems (e.g., a third-party system 170). Although this disclosuredescribes using particular privacy settings in a particular manner, thisdisclosure contemplates using any suitable privacy settings in anysuitable manner.

In particular embodiments, privacy settings may be based on one or morenodes or edges of a social graph 200. A privacy setting may be specifiedfor one or more edges 206 or edge-types of the social graph 200, or withrespect to one or more nodes 202, 204 or node-types of the social graph200. The privacy settings applied to a particular edge 206 connectingtwo nodes may control whether the relationship between the two entitiescorresponding to the nodes is visible to other users of the onlinesocial network. Similarly, the privacy settings applied to a particularnode may control whether the user or concept corresponding to the nodeis visible to other users of the online social network. As an exampleand not by way of limitation, a first user may share an object to thesocial-networking system 160. The object may be associated with aconcept node 204 connected to a user node 202 of the first user by anedge 206. The first user may specify privacy settings that apply to aparticular edge 206 connecting to the concept node 204 of the object, ormay specify privacy settings that apply to all edges 206 connecting tothe concept node 204. As another example and not by way of limitation,the first user may share a set of objects of a particular object-type(e.g., a set of images). The first user may specify privacy settingswith respect to all objects associated with the first user of thatparticular object-type as having a particular privacy setting (e.g.,specifying that all images posted by the first user are visible only tofriends of the first user and/or users tagged in the images).

In particular embodiments, the social-networking system 160 may presenta “privacy wizard” (e.g., within a webpage, a module, one or more dialogboxes, or any other suitable interface) to the first user to assist thefirst user in specifying one or more privacy settings. The privacywizard may display instructions, suitable privacy-related information,current privacy settings, one or more input fields for accepting one ormore inputs from the first user specifying a change or confirmation ofprivacy settings, or any suitable combination thereof. In particularembodiments, the social-networking system 160 may offer a “dashboard”functionality to the first user that may display, to the first user,current privacy settings of the first user. The dashboard functionalitymay be displayed to the first user at any appropriate time (e.g.,following an input from the first user summoning the dashboardfunctionality, following the occurrence of a particular event or triggeraction). The dashboard functionality may allow the first user to modifyone or more of the first user's current privacy settings at any time, inany suitable manner (e.g., redirecting the first user to the privacywizard).

Privacy settings associated with an object may specify any suitablegranularity of permitted access or denial of access. As an example andnot by way of limitation, access or denial of access may be specifiedfor particular users (e.g., only me, my roommates, my boss), userswithin a particular degree-of-separation (e.g., friends,friends-of-friends), user groups (e.g., the gaming club, my family),user networks (e.g., employees of particular employers, students oralumni of particular university), all users (“public”), no users(“private”), users of third-party systems 170, particular applications(e.g., third-party applications, external websites), other suitableentities, or any suitable combination thereof. Although this disclosuredescribes particular granularities of permitted access or denial ofaccess, this disclosure contemplates any suitable granularities ofpermitted access or denial of access.

In particular embodiments, one or more servers 162 may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store 164, the social-networking system 160 maysend a request to the data store 164 for the object. The request mayidentify the user associated with the request and the object may be sentonly to the user (or a client system 130 of the user) if theauthorization server determines that the user is authorized to accessthe object based on the privacy settings associated with the object. Ifthe requesting user is not authorized to access the object, theauthorization server may prevent the requested object from beingretrieved from the data store 164 or may prevent the requested objectfrom being sent to the user. In the search-query context, an object maybe provided as a search result only if the querying user is authorizedto access the object, e.g., if the privacy settings for the object allowit to be surfaced to, discovered by, or otherwise visible to thequerying user. In particular embodiments, an object may representcontent that is visible to a user through a newsfeed of the user. As anexample and not by way of limitation, one or more objects may be visibleto a user's “Trending” page. In particular embodiments, an object maycorrespond to a particular user. The object may be content associatedwith the particular user, or may be the particular user's account orinformation stored on the social-networking system 160, or othercomputing system. As an example and not by way of limitation, a firstuser may view one or more second users of an online social networkthrough a “People You May Know” function of the online social network,or by viewing a list of friends of the first user. As an example and notby way of limitation, a first user may specify that they do not wish tosee objects associated with a particular second user in their newsfeedor friends list. If the privacy settings for the object do not allow itto be surfaced to, discovered by, or visible to the user, the object maybe excluded from the search results. Although this disclosure describesenforcing privacy settings in a particular manner, this disclosurecontemplates enforcing privacy settings in any suitable manner.

In particular embodiments, different objects of the same type associatedwith a user may have different privacy settings. Different types ofobjects associated with a user may have different types of privacysettings. As an example and not by way of limitation, a first user mayspecify that the first user's status updates are public, but any imagesshared by the first user are visible only to the first user's friends onthe online social network. As another example and not by way oflimitation, a user may specify different privacy settings for differenttypes of entities, such as individual users, friends-of-friends,followers, user groups, or corporate entities. As another example andnot by way of limitation, a first user may specify a group of users thatmay view videos posted by the first user, while keeping the videos frombeing visible to the first user's employer. In particular embodiments,different privacy settings may be provided for different user groups oruser demographics. As an example and not by way of limitation, a firstuser may specify that other users who attend the same university as thefirst user may view the first user's pictures, but that other users whoare family members of the first user may not view those same pictures.

In particular embodiments, the social-networking system 160 may provideone or more default privacy settings for each object of a particularobject-type. A privacy setting for an object that is set to a defaultmay be changed by a user associated with that object. As an example andnot by way of limitation, all images posted by a first user may have adefault privacy setting of being visible only to friends of the firstuser and, for a particular image, the first user may change the privacysetting for the image to be visible to friends and friends-of-friends.

In particular embodiments, privacy settings may allow a first user tospecify (e.g., by opting out, by not opting in) whether thesocial-networking system 160 may receive, collect, log, or storeparticular objects or information associated with the user for anypurpose. In particular embodiments, privacy settings may allow the firstuser to specify whether particular applications or processes may access,store, or use particular objects or information associated with theuser. The privacy settings may allow the first user to opt in or opt outof having objects or information accessed, stored, or used by specificapplications or processes. The social-networking system 160 may accesssuch information in order to provide a particular function or service tothe first user, without the social-networking system 160 having accessto that information for any other purposes. Before accessing, storing,or using such objects or information, the social-networking system 160may prompt the user to provide privacy settings specifying whichapplications or processes, if any, may access, store, or use the objector information prior to allowing any such action. As an example and notby way of limitation, a first user may transmit a message to a seconduser via an application related to the online social network (e.g., amessaging app), and may specify privacy settings that such messagesshould not be stored by the social-networking system 160.

In particular embodiments, a user may specify whether particular typesof objects or information associated with the first user may beaccessed, stored, or used by the social-networking system 160. As anexample and not by way of limitation, the first user may specify thatimages sent by the first user through the social-networking system 160may not be stored by the social-networking system 160. As anotherexample and not by way of limitation, a first user may specify thatmessages sent from the first user to a particular second user may not bestored by the social-networking system 160. As yet another example andnot by way of limitation, a first user may specify that all objects sentvia a particular application may be saved by the social-networkingsystem 160.

In particular embodiments, privacy settings may allow a first user tospecify whether particular objects or information associated with thefirst user may be accessed from particular client systems 130 orthird-party systems 170. The privacy settings may allow the first userto opt in or opt out of having objects or information accessed from aparticular device (e.g., the phone book on a user's smart phone), from aparticular application (e.g., a messaging app), or from a particularsystem (e.g., an email server). The social-networking system 160 mayprovide default privacy settings with respect to each device, system, orapplication, and/or the first user may be prompted to specify aparticular privacy setting for each context. As an example and not byway of limitation, the first user may utilize a location-servicesfeature of the social-networking system 160 to provide recommendationsfor restaurants or other places in proximity to the user. The firstuser's default privacy settings may specify that the social-networkingsystem 160 may use location information provided from a client system130 of the first user to provide the location-based services, but thatthe social-networking system 160 may not store the location informationof the first user or provide it to any third-party system 170. The firstuser may then update the privacy settings to allow location informationto be used by a third-party image-sharing application in order togeo-tag photos.

In particular embodiments, privacy settings may allow a user to specifywhether mood or sentiment information associated with the user may bedetermined, and whether particular applications or processes may access,store, or use such information. The privacy settings may allow users toopt in or opt out of having mood or sentiment information accessed,stored, or used by specific applications or processes. Thesocial-networking system 160 may predict or determine a mood orsentiment associated with a user based on, for example, inputs providedby the user and interactions with particular objects, such as pages orcontent viewed by the user, posts or other content uploaded by the user,and interactions with other content of the online social network. Inparticular embodiments, the social-networking system 160 may use auser's previous activities and calculated moods or sentiments todetermine a present mood or sentiment. A user who wishes to enable thisfunctionality may indicate in their privacy settings that they opt in tothe social-networking system 160 receiving the inputs necessary todetermine the mood or sentiment. As an example and not by way oflimitation, the social-networking system 160 may determine that adefault privacy setting is to not receive any information necessary fordetermining mood or sentiment until there is an express indication froma user that the social-networking system 160 may do so. By contrast, ifa user does not opt in to the social-networking system 160 receivingthese inputs (or affirmatively opts out of the social-networking system160 receiving these inputs), the social-networking system 160 may beprevented from receiving, collecting, logging, or storing these inputsor any information associated with these inputs. In particularembodiments, the social-networking system 160 may use the predicted moodor sentiment to provide recommendations or advertisements to the user.In particular embodiments, if a user desires to make use of thisfunction for specific purposes or applications, additional privacysettings may be specified by the user to opt in to using the mood orsentiment information for the specific purposes or applications. As anexample and not by way of limitation, the social-networking system 160may use the user's mood or sentiment to provide newsfeed items, pages,friends, or advertisements to a user. The user may specify in theirprivacy settings that the social-networking system 160 may determine theuser's mood or sentiment. The user may then be asked to provideadditional privacy settings to indicate the purposes for which theuser's mood or sentiment may be used. The user may indicate that thesocial-networking system 160 may use his or her mood or sentiment toprovide newsfeed content and recommend pages, but not for recommendingfriends or advertisements. The social-networking system 160 may thenonly provide newsfeed content or pages based on user mood or sentiment,and may not use that information for any other purpose, even if notexpressly prohibited by the privacy settings.

In particular embodiments, privacy settings may allow a user to engagein the ephemeral sharing of objects on the online social network.Ephemeral sharing refers to the sharing of objects (e.g., posts, photos)or information for a finite period of time. Access or denial of accessto the objects or information may be specified by time or date. As anexample and not by way of limitation, a user may specify that aparticular image uploaded by the user is visible to the user's friendsfor the next week, after which time the image may no longer beaccessible to other users. As another example and not by way oflimitation, a company may post content related to a product releaseahead of the official launch, and specify that the content may not bevisible to other users until after the product launch.

In particular embodiments, for particular objects or information havingprivacy settings specifying that they are ephemeral, thesocial-networking system 160 may be restricted in its access, storage,or use of the objects or information. The social-networking system 160may temporarily access, store, or use these particular objects orinformation in order to facilitate particular actions of a userassociated with the objects or information, and may subsequently deletethe objects or information, as specified by the respective privacysettings. As an example and not by way of limitation, a first user maytransmit a message to a second user, and the social-networking system160 may temporarily store the message in a data store 164 until thesecond user has viewed or downloaded the message, at which point thesocial-networking system 160 may delete the message from the data store164. As another example and not by way of limitation, continuing withthe prior example, the message may be stored for a specified period oftime (e.g., 2 weeks), after which point the social-networking system 160may delete the message from the data store 164.

In particular embodiments, privacy settings may allow a user to specifyone or more geographic locations from which objects can be accessed.Access or denial of access to the objects may depend on the geographiclocation of a user who is attempting to access the objects. As anexample and not by way of limitation, a user may share an object andspecify that only users in the same city may access or view the object.As another example and not by way of limitation, a first user may sharean object and specify that the object is visible to second users onlywhile the first user is in a particular location. If the first userleaves the particular location, the object may no longer be visible tothe second users. As another example and not by way of limitation, afirst user may specify that an object is visible only to second userswithin a threshold distance from the first user. If the first usersubsequently changes location, the original second users with access tothe object may lose access, while a new group of second users may gainaccess as they come within the threshold distance of the first user.

In particular embodiments, the social-networking system 160 may havefunctionalities that may use, as inputs, personal or biometricinformation of a user for user-authentication orexperience-personalization purposes. A user may opt to make use of thesefunctionalities to enhance their experience on the online socialnetwork. As an example and not by way of limitation, a user may providepersonal or biometric information to the social-networking system 160.The user's privacy settings may specify that such information may beused only for particular processes, such as authentication, and furtherspecify that such information may not be shared with any third-partysystem 170 or used for other processes or applications associated withthe social-networking system 160. As another example and not by way oflimitation, the social-networking system 160 may provide a functionalityfor a user to provide voice-print recordings to the online socialnetwork. As an example and not by way of limitation, if a user wishes toutilize this function of the online social network, the user may providea voice recording of his or her own voice to provide a status update onthe online social network. The recording of the voice-input may becompared to a voice print of the user to determine what words werespoken by the user. The user's privacy setting may specify that suchvoice recording may be used only for voice-input purposes (e.g., toauthenticate the user, to send voice messages, to improve voicerecognition in order to use voice-operated features of the online socialnetwork), and further specify that such voice recording may not beshared with any third-party system 170 or used by other processes orapplications associated with the social-networking system 160.

In particular embodiments, changes to privacy settings may take effectretroactively, affecting the visibility of objects and content sharedprior to the change. As an example and not by way of limitation, a firstuser may share a first image and specify that the first image is to bepublic to all other users. At a later time, the first user may specifythat any images shared by the first user should be made visible only toa first user group. The social-networking system 160 may determine thatthis privacy setting also applies to the first image and make the firstimage visible only to the first user group. In particular embodiments,the change in privacy settings may take effect only going forward.Continuing the example above, if the first user changes privacy settingsand then shares a second image, the second image may be visible only tothe first user group, but the first image may remain visible to allusers. In particular embodiments, in response to a user action to changea privacy setting, the social-networking system 160 may further promptthe user to indicate whether the user wants to apply the changes to theprivacy setting retroactively. In particular embodiments, a user changeto privacy settings may be a one-off change specific to one object. Inparticular embodiments, a user change to privacy may be a global changefor all objects associated with the user.

In particular embodiments, the social-networking system 160 maydetermine that a first user may want to change one or more privacysettings in response to a trigger action associated with the first user.The trigger action may be any suitable action on the online socialnetwork. As an example and not by way of limitation, a trigger actionmay be a change in the relationship between a first and second user ofthe online social network (e.g., “un-friending” a user, changing therelationship status between the users). In particular embodiments, upondetermining that a trigger action has occurred, the social-networkingsystem 160 may prompt the first user to change the privacy settingsregarding the visibility of objects associated with the first user. Theprompt may redirect the first user to a workflow process for editingprivacy settings with respect to one or more entities associated withthe trigger action. The privacy settings associated with the first usermay be changed only in response to an explicit input from the firstuser, and may not be changed without the approval of the first user. Asan example and not by way of limitation, the workflow process mayinclude providing the first user with the current privacy settings withrespect to the second user or to a group of users (e.g., un-tagging thefirst user or second user from particular objects, changing thevisibility of particular objects with respect to the second user orgroup of users), and receiving an indication from the first user tochange the privacy settings based on any of the methods describedherein, or to keep the existing privacy settings.

In particular embodiments, a user may need to provide verification of aprivacy setting before allowing the user to perform particular actionson the online social network, or to provide verification before changinga particular privacy setting. When performing particular actions orchanging a particular privacy setting, a prompt may be presented to theuser to remind the user of his or her current privacy settings and toask the user to verify the privacy settings with respect to theparticular action. Furthermore, a user may need to provide confirmation,double-confirmation, authentication, or other suitable types ofverification before proceeding with the particular action, and theaction may not be complete until such verification is provided. As anexample and not by way of limitation, a user's default privacy settingsmay indicate that a person's relationship status is visible to all users(i.e., “public”). However, if the user changes his or her relationshipstatus, the social-networking system 160 may determine that such actionmay be sensitive and may prompt the user to confirm that his or herrelationship status should remain public before proceeding. As anotherexample and not by way of limitation, a user's privacy settings mayspecify that the user's posts are visible only to friends of the user.However, if the user changes the privacy setting for his or her posts tobeing public, the social-networking system 160 may prompt the user witha reminder of the user's current privacy settings of posts being visibleonly to friends, and a warning that this change will make all of theuser's past posts visible to the public. The user may then be requiredto provide a second verification, input authentication credentials, orprovide other types of verification before proceeding with the change inprivacy settings. In particular embodiments, a user may need to provideverification of a privacy setting on a periodic basis. A prompt orreminder may be periodically sent to the user based either on timeelapsed or a number of user actions. As an example and not by way oflimitation, the social-networking system 160 may send a reminder to theuser to confirm his or her privacy settings every six months or afterevery ten photo posts. In particular embodiments, privacy settings mayalso allow users to control access to the objects or information on aper-request basis. As an example and not by way of limitation, thesocial-networking system 160 may notify the user whenever a third-partysystem 170 attempts to access information associated with the user, andrequire the user to provide verification that access should be allowedbefore proceeding.

Systems and Methods

FIG. 7 illustrates an example computer system 700. In particularembodiments, one or more computer systems 700 perform one or more stepsof one or more methods described or illustrated herein. In particularembodiments, one or more computer systems 700 provide functionalitydescribed or illustrated herein. In particular embodiments, softwarerunning on one or more computer systems 700 performs one or more stepsof one or more methods described or illustrated herein or providesfunctionality described or illustrated herein. Particular embodimentsinclude one or more portions of one or more computer systems 700.Herein, reference to a computer system may encompass a computing device,and vice versa, where appropriate. Moreover, reference to a computersystem may encompass one or more computer systems, where appropriate.

This disclosure contemplates any suitable number of computer systems700. This disclosure contemplates computer system 700 taking anysuitable physical form. As example and not by way of limitation,computer system 700 may be an embedded computer system, a system-on-chip(SOC), a single-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, a tablet computer system, or acombination of two or more of these. Where appropriate, computer system700 may include one or more computer systems 700; be unitary ordistributed; span multiple locations; span multiple machines; spanmultiple data centers; or reside in a cloud, which may include one ormore cloud components in one or more networks. Where appropriate, one ormore computer systems 700 may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems 700 may perform in real time or in batch modeone or more steps of one or more methods described or illustratedherein. One or more computer systems 700 may perform at different timesor at different locations one or more steps of one or more methodsdescribed or illustrated herein, where appropriate.

In particular embodiments, computer system 700 includes a processor 702,memory 704, storage 706, an input/output (I/O) interface 708, acommunication interface 710, and a bus 712. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 702 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 702 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 704, or storage 706; decode and execute them; andthen write one or more results to an internal register, an internalcache, memory 704, or storage 706. In particular embodiments, processor702 may include one or more internal caches for data, instructions, oraddresses. This disclosure contemplates processor 702 including anysuitable number of any suitable internal caches, where appropriate. Asan example and not by way of limitation, processor 702 may include oneor more instruction caches, one or more data caches, and one or moretranslation lookaside buffers (TLBs). Instructions in the instructioncaches may be copies of instructions in memory 704 or storage 706, andthe instruction caches may speed up retrieval of those instructions byprocessor 702. Data in the data caches may be copies of data in memory704 or storage 706 for instructions executing at processor 702 tooperate on; the results of previous instructions executed at processor702 for access by subsequent instructions executing at processor 702 orfor writing to memory 704 or storage 706; or other suitable data. Thedata caches may speed up read or write operations by processor 702. TheTLBs may speed up virtual-address translation for processor 702. Inparticular embodiments, processor 702 may include one or more internalregisters for data, instructions, or addresses. This disclosurecontemplates processor 702 including any suitable number of any suitableinternal registers, where appropriate. Where appropriate, processor 702may include one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 702. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 704 includes main memory for storinginstructions for processor 702 to execute or data for processor 702 tooperate on. As an example and not by way of limitation, computer system700 may load instructions from storage 706 or another source (such as,for example, another computer system 700) to memory 704. Processor 702may then load the instructions from memory 704 to an internal registeror internal cache. To execute the instructions, processor 702 mayretrieve the instructions from the internal register or internal cacheand decode them. During or after execution of the instructions,processor 702 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor702 may then write one or more of those results to memory 704. Inparticular embodiments, processor 702 executes only instructions in oneor more internal registers or internal caches or in memory 704 (asopposed to storage 706 or elsewhere) and operates only on data in one ormore internal registers or internal caches or in memory 704 (as opposedto storage 706 or elsewhere). One or more memory buses (which may eachinclude an address bus and a data bus) may couple processor 702 tomemory 704. Bus 712 may include one or more memory buses, as describedbelow. In particular embodiments, one or more memory management units(MMUs) reside between processor 702 and memory 704 and facilitateaccesses to memory 704 requested by processor 702. In particularembodiments, memory 704 includes random access memory (RAM). This RAMmay be volatile memory, where appropriate Where appropriate, this RAMmay be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 704 may include one ormore memories 704, where appropriate. Although this disclosure describesand illustrates particular memory, this disclosure contemplates anysuitable memory.

In particular embodiments, storage 706 includes mass storage for data orinstructions. As an example and not by way of limitation, storage 706may include a hard disk drive (HDD), a floppy disk drive, flash memory,an optical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (USB) drive or a combination of two or more of these. Storage706 may include removable or non-removable (or fixed) media, whereappropriate. Storage 706 may be internal or external to computer system700, where appropriate. In particular embodiments, storage 706 isnon-volatile, solid-state memory. In particular embodiments, storage 706includes read-only memory (ROM). Where appropriate, this ROM may bemask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these. Thisdisclosure contemplates mass storage 706 taking any suitable physicalform. Storage 706 may include one or more storage control unitsfacilitating communication between processor 702 and storage 706, whereappropriate. Where appropriate, storage 706 may include one or morestorages 706. Although this disclosure describes and illustratesparticular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface 708 includes hardware,software, or both, providing one or more interfaces for communicationbetween computer system 700 and one or more I/O devices. Computer system700 may include one or more of these I/O devices, where appropriate. Oneor more of these I/O devices may enable communication between a personand computer system 700. As an example and not by way of limitation, anI/O device may include a keyboard, keypad, microphone, monitor, mouse,printer, scanner, speaker, still camera, stylus, tablet, touch screen,trackball, video camera, another suitable I/O device or a combination oftwo or more of these. An I/O device may include one or more sensors.This disclosure contemplates any suitable I/O devices and any suitableI/O interfaces 708 for them. Where appropriate, I/O interface 708 mayinclude one or more device or software drivers enabling processor 702 todrive one or more of these I/O devices. I/O interface 708 may includeone or more I/O interfaces 708, where appropriate. Although thisdisclosure describes and illustrates a particular I/O interface, thisdisclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface 710 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 700 and one or more other computer systems 700 or one ormore networks. As an example and not by way of limitation, communicationinterface 710 may include a network interface controller (NIC) ornetwork adapter for communicating with an Ethernet or other wire-basednetwork or a wireless NIC (WNIC) or wireless adapter for communicatingwith a wireless network, such as a WI-FI network. This disclosurecontemplates any suitable network and any suitable communicationinterface 710 for it. As an example and not by way of limitation,computer system 700 may communicate with an ad hoc network, a personalarea network (PAN), a local area network (LAN), a wide area network(WAN), a metropolitan area network (MAN), or one or more portions of theInternet or a combination of two or more of these. One or more portionsof one or more of these networks may be wired or wireless. As anexample, computer system 700 may communicate with a wireless PAN (WPAN)(such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAXnetwork, a cellular telephone network (such as, for example, a GlobalSystem for Mobile Communications (GSM) network), or other suitablewireless network or a combination of two or more of these. Computersystem 700 may include any suitable communication interface 710 for anyof these networks, where appropriate. Communication interface 710 mayinclude one or more communication interfaces 710, where appropriate.Although this disclosure describes and illustrates a particularcommunication interface, this disclosure contemplates any suitablecommunication interface.

In particular embodiments, bus 712 includes hardware, software, or bothcoupling components of computer system 700 to each other. As an exampleand not by way of limitation, bus 712 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCIe) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 712may include one or more buses, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such, as for example, field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

Miscellaneous

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,feature, functions, operations, or steps, any of these embodiments mayinclude any combination or permutation of any of the components,elements, features, functions, operations, or steps described orillustrated anywhere herein that a person having ordinary skill in theart would comprehend. Furthermore, reference in the appended claims toan apparatus or system or a component of an apparatus or system beingadapted to, arranged to, capable of, configured to, enabled to, operableto, or operative to perform a particular function encompasses thatapparatus, system, component, whether or not it or that particularfunction is activated, turned on, or unlocked, as long as thatapparatus, system, or component is so adapted, arranged, capable,configured, enabled, operable, or operative. Additionally, although thisdisclosure describes or illustrates particular embodiments as providingparticular advantages, particular embodiments may provide none, some, orall of these advantages.

What is claimed is:
 1. A method comprising: receiving, from a clientsystem at a first location, an audio input from an unknown user;identifying a first user who is proximate to the first location;identifying the unknown user as a second user based on a comparison ofthe audio input to one or more voiceprints of one or more candidateusers accessible by the client system, respectively, wherein eachvoiceprint comprises audio data for auditory identification of a uniqueuser, and wherein each candidate user is a contact of the first user;and sending customized content to one or more of the first user or thesecond user, wherein the content is customized using interestinformation associated with the first or second user.
 2. The method ofclaim 1, wherein the customized content comprises content associatedwith the first location.
 3. The method of claim 1, further comprisinggenerating the customized content based on one or more interests of thefirst user or the second user, wherein the one or more interests areaccessed from an online social network.
 4. The method of claim 3,wherein the customized content comprises content having one or moretopics that match the interests of the first user or the second user. 5.The method of claim 1, wherein the customized content comprisesadvertisements, news feeds, push notifications, place tips, coupons,suggestions, or a combination thereof.
 6. The method of claim 1, whereinthe client system is a mobile phone, a Bluetooth beacon, or a mediadevice operable to receive audio input.
 7. The method of claim 1,wherein the first and second users are associated with an event on anonline social network.
 8. The method of claim 7, wherein the first andsecond users have confirmed their attendance at the event to the onlinesocial network.
 9. The method of claim 1, wherein each candidate user iswithin a threshold degree of separation of the first user within anonline social network.
 10. The method of claim 1, further comprising:determining a relationship status between the first user and the seconduser; and sending, to the client system, a temporary personal identifierfor presentation to the second user if the relationship status betweenthe first user and the second user satisfies a threshold criteria. 11.The method of claim 10, wherein the relationship status between thefirst user and the second user satisfies the threshold criteria when thefirst user is within a threshold degree of separation of the second userwithin an online social network.
 12. The method of claim 10, wherein therelationship status between the first user and the second user satisfiesthe threshold criteria when a privacy settings of the first user allowthe second user to access a profile page of the first user.
 13. Themethod of claim 1, further comprising: authenticating the second user toaccess an online account associated with the second user via the clientsystem.
 14. The method of claim 13, wherein the authenticating thesecond user to access an online account associated with the second uservia the client system grants the second user access to asocial-networking feed associated with the second user.
 15. The methodof claim 13, wherein the authenticating the second user grants thesecond user access to information about friends of the second user. 16.The method of claim 13, further comprising accessing one or morethird-party applications on the client system in response toauthenticating the second user.
 17. The method of claim 13, wherein theauthenticating the second user grants the second user access to anonline social network.
 18. The method of claim 17, wherein the access tothe online social network granted to the second user is subject tosocial-networking visibility restrictions associated with the seconduser.
 19. One or more computer-readable non-transitory storage mediaembodying software that is operable when executed to: receive, from aclient system at a first location, an audio input from an unknown user;identify a first user who is proximate to the first location; identifythe unknown user as a second user based on a comparison of the audioinput to one or more voiceprints of one or more candidate usersaccessible by the client system, respectively, wherein each voiceprintcomprises audio data for auditory identification of a unique user, andwherein each candidate user is a contact of the first user; and sendcustomized content to one or more of the first user or the second user,wherein the content is customized using interest information associatedwith the first or second user.
 20. A system comprising: one or moreprocessors; and a non-transitory memory coupled to the processorscomprising instructions executable by the processors, the processorsoperable when executing the instructions to: receive, from a clientsystem at a first location, an audio input from an unknown user;identify a first user who is proximate to the first location; identifythe unknown user as a second user based on a comparison of the audioinput to one or more voiceprints of one or more candidate usersaccessible by the client system, respectively, wherein each voiceprintcomprises audio data for auditory identification of a unique user, andwherein each candidate user is a contact of the first user; and sendcustomized content to one or more of the first user or the second user,wherein the content is customized using interest information associatedwith the first or second user.